可能是一个非常简单的问题,但我很难在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