r中的多级条件语句

r中的多级条件语句,r,if-statement,conditional,R,If Statement,Conditional,我对R很陌生,所以如果这个问题在以前的线程中已经解决过,请原谅我(可能是用我还不懂的语言) 我试图根据两个条件生成一个新的向量(df1$response\u accurity)。第一个是来自向量df1$Facial.expression的值介于1和4之间,来自向量df1$Evaluations的值等于“Like”。符合此条件的案例在新向量中输出“正确”,否则输出“不正确”。第二个参数包含一组类似的条件,但每个向量中的值不同(见下文)。这是我的密码: df1$response_accuracy &

我对R很陌生,所以如果这个问题在以前的线程中已经解决过,请原谅我(可能是用我还不懂的语言)

我试图根据两个条件生成一个新的向量(df1$response\u accurity)。第一个是来自向量
df1$Facial.expression
的值介于1和4之间,来自向量
df1$Evaluations
的值等于“Like”。符合此条件的案例在新向量中输出“正确”,否则输出“不正确”。第二个参数包含一组类似的条件,但每个向量中的值不同(见下文)。这是我的密码:

df1$response_accuracy <- 
ifelse(df1$Facial.expression == 1:4 & df1$Evaluation == "Like", "Correct", "Incorrect",                      
ifelse(df1$Facial.expression == 5:8 & df1$Evaluation == "Dislike", "Correct", "Incorrect")
)
df1$response\u准确性这是怎么回事?

我可以看到两个错误,首先如果你想在两个值之间,你必须这样做x>=1&x你不能有嵌套的
ifelse
-s。语法是
ifelse(测试,是,否)
。所以你需要解开它们

谢谢你的回答和评论。我从
ifelse
中找到了一个解决方案,并创建了一个名为
'correct\u cases'
的值。然后,在生成一个通用向量
df$response\u accurity
之后,我通过一个指示符强制执行该命令;见下文

correct_cases <- (df1$Facial.expression %in% 1:4 & 
df1$Evaluation == "Like") |
(df1$facial.expression %in% 5:8 & 
df1$Evaluation == "Dislike")

df1$Response_accuracy <- "Incorrect"

df1$Response_accuracy[correct_cases] <- "Correct"

<代码>修正案DF1 $RealthSo精度@ WydLoor考虑“代码> df1 $面部的意思。表达式=1:4/<代码>更仔细。@ IMO,我知道:DF1 $Rebug精度,您可以,它只是变得非常凌乱。
correct_cases <- (df1$Facial.expression %in% 1:4 & 
df1$Evaluation == "Like") |
(df1$facial.expression %in% 5:8 & 
df1$Evaluation == "Dislike")

df1$Response_accuracy <- "Incorrect"

df1$Response_accuracy[correct_cases] <- "Correct"