我正尝试基于另外两列($Condition和$Response)中的值在数据框中创建新列($Correct)。
我意识到有多种方法可以实现这一点(我后来使用了另一种方法),但我对下面的方法不起作用的原因很感兴趣。
training_data.df$Correct<- 0
training_data.df$Correct[training_data.df$Condition==2 & training_data.df$Response==1] <- 1
training_data.df$Correct[(training_data.df$Condition==1|3) & training_data.df$Response==2] <- 1
此方法在输出(新的$Correct列)中生成正确的值,但$Condition == 2和$Response == 2的情况除外(在$Correct列中打印值"1"而不是"0")。
这一行代码本身可以正常工作,但不能与$Condition == 1的另一行(最后一行)结合使用|3.
有人能解释为什么会发生这种情况吗?
1条答案
按热度按时间j9per5c41#
内容如下:
或
“(training_data.df$条件等于1)”可以是TRUE或FALSE。
“三”不算多。
但我觉得你的意思是:“training_data.df$条件等于(1或3)"。
这将是
(training_data.df$Condition==1 | training_data.df$Condition==3)
或training_data.df$Condition %in% c(1,3)
。