我试图计算实验中每个主题的反应时间分数,但只使用一组试验,取决于主题的性能。对于循环,列表和条件分析(在R中)
每个科目都参加了16个项目的测验。然后他们对同样的16个项目进行了测试。对于每个科目,我都想得到平均反应时间分数,但仅限于那些他们都有问题和试题正确的项目。
我的数据文件看起来是这样的:
subject quizitem1 quizitem2 testitem1 testitem2 RT1 RT2
1 1 0 1 1 5 10
2 0 1 0 1 3 7
理想情况下,我想仅仅考虑的RT下都quizitem[i]
和testitem[i]
用ls项目i
时表示每个科目的平均反应时间的另一列。使用上面的例子中,列应该是这样的:
newDV
5
7
...因为受1只得到了第1项正确两个措施,并受2只拿到了第2项关于这两项措施是正确的。
我已经开始制作三个向量,以帮助保持相关项目的数据按正确顺序排列。
quizacclist = c(quizitem1, quizitem2)
testacclist = c(testitem1, testitem2)
RTlist = c(RT1, RT2)
所有这些新的载体是很长,从所有科目的RT2
献给所有科目,等等追加RT1
秒。
我试过使用for
循环来计算这一列,但不能完全弄清楚限制分析符合上述条件的条件是什么条件。
这里是我的尝试:
attach(df)
i = 0
j = 0
for(i in subject) {
for(j in 1:16) {
denominator[i] = sum(quizacclist[i*j]==1 & testacclist[i*j]==1)
qualifiedindex[i] = ??
numerator[i] = sum(RTlist[qualifiedindex])
meanqualifiedRT[i] = numerator[i]/denominator[i]
}
}
的denominator
变量应该计算为其中受试者已经得到双方的测验和考试题正确的项目数。
该numerator
变量应该加起来为变量denominator
贡献的项目的所有RTs;也就是说,对该项目进行了测验并测试了正确的问题。
我现在的具体问题是:如何指定此qualifiedindex
?正如我设想的那样,它应该是一个列表清单;宏列表中的每个索引对应于主题,并且每个主题都有他们自己的列表,该列表指出quizacclist[i]
和testacclist[i]
下哪些项目具有1
s。
例如:
Qualifiedindex = ([1,5,9],[2,6],[8,16],etc)
理想的情况下,这种结构将允许numerator
变量最多只能加满足精度条件的RT。
如何创建此列表中的列表? 或者,有没有更好的方式来实现我的目标? 任何帮助,将不胜感激!
由于提前, 亚当