改进内存实验的R代码

时间:2012-04-23 00:45:20

标签: r

我正在为我的实验制作一个数据集,并且我试图找出有多少次试验导致参与者的行动不正确。在我的表中(见下文)我在末尾添加了三列: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)}

1 个答案:

答案 0 :(得分:1)

仍然不确定你到底发生了什么。您似乎想要将RECORDING_SESSION_LABEL和标识符视为分组。因此,在上面的数据框中,我们有10个观测值1091和标签和86标识符,然后是2个1091标签和110标识符的观测值。您想要对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

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