-3

我正在为我的实验处理一个数据集,并试图找出有多少次试验导致参与者的错误行为。在我的表格(见下文)中,我在末尾添加了三列:prefix、corrfix 和 errfix(0 表示错误,数值表示正确操作)。我想首先查看每个参与者有多少次试验导致前缀列的操作不正确(即,该试验没有数值,表明他们没有执行正确的操作)。

   RECORDING_SESSION_LABEL CURRENT_FIX_INDEX identifier prefix corrfix errfix
1                     1091                 1         86      0       0      0
2                     1091                 2         86      0       0      0
3                     1091                 3         86   1229       0      0
4                     1091                 4         86      0       0      0
5                     1091                 5         86      0       0      0
6                     1091                 1        110      0       0      0
7                     1091                 2        110    764       0      0
8                     1092                 3         22    202       0    202
9                     1092                 4         22    120       0      0
10                    1092                 5         22      0       0      0
11                    1092                 6         22      0       0      0
12                    1092                 7         22      0       0      0
13                    1092                 8         22      0       0      0
14                    1092                 9         22    510       0      0
15                    1092                10         22    330       0      0
16                    1092                11         22      0       0     57

我一直在编写代码,但是当我只想要没有数值的试验(每个参与者每行应该进行不同的试验)时,它会返回多行(同一个试验)我将不胜感激任何帮助或建议。我正在努力提高我的 R 技能。

  flag=0
  flag=1
  if(new[i,]$CURRENT_FIX_INDEX==1){
  flag=1
  }
  if (flag==1) {
  if(new[i,]$prefix==0){
  cbind(new$RECORDING_SESSION_LABEL, new$identifier)}
4

1 回答 1

1

仍然不确定你到底在追求什么。您似乎想查看 RECORDING_SESSION_LABEL 和标识符作为分组。因此,在您上面的数据框中,我们有 1091 个标签和 86 个标识符的 5 个观察值,然后是 1091 个标签和 110 个标识符的 2 个观察值。您想对 1091 和 86 的 5 个观测值求和,然后再对 1091 和 110 求和。如果总和不大于 0,我们标记并返回此 LABEL 和标识符。这是正确的,还是您只想查看所有 1091 标签作为一个整体,看看是否有除 0 以外的任何值?

代码 beloe 查看这三个组(正确吗?):

$`1092.22`
   RECORDING_SESSION_LABEL CURRENT_FIX_INDEX identifier prefix corrfix errfix
8                     1092                 3         22    202       0    202
9                     1092                 4         22    120       0      0
10                    1092                 5         22      0       0      0
11                    1092                 6         22      0       0      0
12                    1092                 7         22      0       0      0
13                    1092                 8         22      0       0      0
14                    1092                 9         22    510       0      0
15                    1092                10         22    330       0      0
16                    1092                11         22      0       0     57

$`1091.86`
  RECORDING_SESSION_LABEL CURRENT_FIX_INDEX identifier prefix corrfix errfix
1                    1091                 1         86      0       0      0
2                    1091                 2         86      0       0      0
3                    1091                 3         86   1229       0      0
4                    1091                 4         86      0       0      0
5                    1091                 5         86      0       0      0



$`1091.110`
  RECORDING_SESSION_LABEL CURRENT_FIX_INDEX identifier prefix corrfix errfix
6                    1091                 1        110      0       0      0
7                    1091                 2        110    764       0      0

编码:

error.count <- function(column){
    x <- rle(sort(column))
    ifelse(sum(x[[2]])==0, TRUE, FALSE)
}

outcome <- aggregate(prefix~RECORDING_SESSION_LABEL+identifier, dat, error.count)
outcome[outcome$prefix==1, ] #return just those Labels and identifiers with all zeros

在这种情况下,您将不会得到任何返回,因为您没有任何适合这些情况的数据。我可能会建议进一步完善您提供的数据,这些数据将产生您试图识别的情况。

于 2012-04-23T01:25:46.343 回答