合并2个数据帧并在" new"中分配值时出错柱

时间:2016-06-17 05:59:25

标签: r if-statement dataframe

下面我有代码合并两个数据帧并分配值3和-1,

candidate_score<-merge(check7,anskey,by='Question.ID')

  candidate_score$correct <- candidate_score$Selected.Option.ID == candidate_score$Correct.Option.ID

  candidate_score$score <- 
        ifelse(candidate_score$correct== TRUE, 3,
                              ifelse(candidate_score$correct== FALSE, -1, ifelse(candidate_score$Correct.Option.ID == Full Marks ,3,NA)))

我有学生数据,当根据candidate_score$score数据框分配标记3,-1时,标记3下面显示的标记3未根据我的{{correct.option.id列分配给标记1}}代码如何实现我想要的输出?

我想在correct.option.id有完整标记的地方分配3个标记。

1 个答案:

答案 0 :(得分:0)

第二个ifelse有4个参数。您需要确定该条件的结果是-1还是NA。无法从所提供的材料中确定您的意图。最好的是样本数据帧或向量和一些描述。

如果在逗号和环绕赋值运算符之后插入空格,则通常更容易找到错误。我试图以更有条理的方式编辑代码。

回应澄清请求......这是第二次ifelse调用::

ifelse(candidate_score$correct== FALSE, # arg 1 (the condition)
       -1 ,                             # arg 2 (the consequent)
        NA,                             # arg 3 (should be the alternative)
                 # and the following fourth argument causes an error.
        ifelse(candidate_score$Correct.Option.ID == Full Marks ,3,NA))

还不完全清楚要应用的逻辑测试,但也许你想要这个:

candidate_score$score <- 
 ifelse(candidate_score$correct== TRUE | candidate_score$Correct.Option.ID == 'Full Marks', 
        3,
        ifelse( candidate_score$correct== FALSE, -1,,NA))

您还应该意识到不需要==TRUE部分,因为TRUETRUE==TRUE具有相同的值,而FALSE与FALSE==TRUE具有相同的值,< / p>