可能是一個非常簡單的問題,但我很難在r中解決這個問題。 我有一個包含四個變量的數據集:ID(用於識別參與者),Type(此次具有1個值),Decision(A或B)和Feedback(0或1)。對於兩個參與者的數據集是這樣的:計算數據幀中每個個體變量的變化次數
ID Type Decision Feedback
1 1 A 0
1 1 A 0
1 1 B 1
1 1 B 1
1 1 B 0
2 1 A 0
2 1 A 1
2 1 A 1
2 1 A 0
2 1 B 1
etc...
我想計算爲以前的反饋功能,在決策過程中的變化的數量。換句話說,如果參與者選擇A並且收到負面反饋,她/她會再次選擇A(保持)還是B(移動)。所以,我的代碼是一個參與者如下:
Stay=0
Shift=0
for(i in 2:length(mydf$Type)){
if(mydf$Decision[i] == "A" && mydf$Feedback[i-1]==1 && mydf$Decision [i-1] == "A"){
Stay= Stay+1
}
else if(mydf$Decision [i] == "B" && mydf$Feedback[i-1]==1 && mydf$Decision [i-1] == "B"){
Stay= Stay+1
}
else if(mydf$ Decision [i] == "A" && mydf$Feedback[i-1]==1 && mydf$Decision [i-1] == "B"){
Shift= Shift+1
}
else if(mydf$Decision [i] == "B" && mydf$Feedback[i-1]==1 && mydf$Decision [i-1] == "A"){
Shift= Shift+1
}
}
然而,我的數據幀中包含20名參與者,我不知道如何擴展我的代碼來獲得住宿和轉移的數量爲每個參與者(即獲得在最後是這樣的):
#ID Stay Shift
#1 10 10
#2 16 4
#etc...
非常感謝您對您的幫助提前。
你可以發佈'dput(head(mydf,50))'的結果嗎?這會創建數據框的前50行的可重複版本,並使它更容易回答? – 2013-03-27 15:25:44
這些反饋因素如何與他們留在A或B中? – Chase 2013-03-27 15:33:44
對於你所示的例子,對於'ID = 1',你能解釋'stay'和'shift'是什麼嗎? – Arun 2013-03-27 15:38:18