根据R中其他列的值创建列

8fsztsew  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(89)

我正尝试基于另外两列($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.
有人能解释为什么会发生这种情况吗?

j9per5c4

j9per5c41#

training_data.df$Condition==1|3

内容如下:

  • “(training_data.df$条件等于1)”

  • “三”。

“(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)

相关问题