我試圖計算實驗中每個主題的反應時間分數,但只使用一組試驗,取決於主題的性能。對於循環,列表和條件分析(在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。
如何創建此列表中的列表? 或者,有沒有更好的方式來實現我的目標? 任何幫助,將不勝感激!
由於提前, 亞當