尋ねるのは非常に簡単な質問かもしれませんが、rでこの問題を解決するのに苦労しています. ID (参加者を識別するため)、タイプ (今回は 1 つの値)、決定 (A または B)、およびフィードバック (0 または 1) の 4 つの変数を含むデータセットがあります。2 人の参加者のデータ セットは次のようになります。
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 (シフト) を選択します。したがって、私のコードは1人の参加者に対して次のとおりです。
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...
よろしくお願いいたします。