2017-01-06 1 views
0

私はいくつかの変数を持つデータフレームを持っている:私がやりたい何R:別の列の特定の値に基づいて値を持つ新しい列を作成する方法は?

Subj DashedOrQuest ItemNo TimesOrCorrect 
1 dashed  243 859 
1 dashed  243 648 
1 dashed  243 655 
1 dashed  243 389 
1 question  243 1 
1 dashed  244 465 
1 dashed  244 844 
1 dashed  244 578 
1 dashed  244 713 
1 question  244 0 

は、各ITEMNOのために」のTimesOrCorrectにある数があるだろうように、新しいコラム「クエスト」を作成することですDashedOrQuestの "質問"値です。言い換えれば、これは次のようになります

Subj DashedOrQuest ItemNo TimesOrCorrect Quest 
1 dashed  243 859   1 
1 dashed  243 648   1 
1 dashed  243 655   1 
1 dashed  243 389   1 
1 question  243 1    1 
1 dashed  244 465   0 
1 dashed  244 844   0 
1 dashed  244 578   0 
1 dashed  244 713   0 
1 question  244 0    0 

どのようにRでそれを行うためのヒント?前もって感謝します!

+0

を使用することができます。より長い例を追加したり、質問/列をもう少し説明してください。 –

答えて

0

私たちは、私はそれはあなたが求めているものをまだ少しは不明だと思うdata.table

library(data.table) 
setDT(df)[, Quest := TimesOrCorrect[DashedOrQuest == "question"], by = .(Subj, ItemNo)] 
df 
#  Subj DashedOrQuest ItemNo TimesOrCorrect Quest 
# 1: 1  dashed 243   859  1 
# 2: 1  dashed 243   648  1 
# 3: 1  dashed 243   655  1 
# 4: 1  dashed 243   389  1 
# 5: 1  question 243    1  1 
# 6: 1  dashed 244   465  0 
# 7: 1  dashed 244   844  0 
# 8: 1  dashed 244   578  0 
# 9: 1  dashed 244   713  0 
#10: 1  question 244    0  0 
1
library(dplyr) 
df%>%group_by(ItemNo)%>%mutate(Quest=TimesOrCorrect[DashedOrQuest=='question']) 
関連する問題