[英]Creating column based on values of other columns in R
我正在尝试根据其他两列($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
此方法在 output(新的 $Correct 列)中生成正确的值,但 $Condition==2 和 $Response==2 的情况除外(值“1”打印在 $Correct 列中而不是“0”) .
这行代码本身可以正常工作,但不能与 $Condition==1|3 的另一(最后)行结合使用。
谁能解释为什么会这样?
training_data.df$Condition==1|3
读作:
或者
“(training_data.df$Condition 等于 1)”可以是 TRUE 或 FALSE。
“三”不是那么多。
而我认为您的意思是:“training_data.df$Condition 等于(1 或 3)”。
这将是(training_data.df$Condition==1 | training_data.df$Condition==3)
或training_data.df$Condition %in% c(1,3)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.