比较 R 中的两列时使用 OR 逻辑运算符

Using OR logical operator when comparing two columns in R

我有一个大数据框,我在其中打印与另一列不匹配的列。我能够将第 4 列和第 9 列与这段代码进行比较:

test_no_match <- newtest[which(newtest[,4] != newtest[,9] ),]

但是,我想打印一个数据框,其中第 4 列和第 9 列不匹配,或者如果第 6 列和第 11 列不匹配。因此,如果任一参数为真,它将打印。

我试过使用:

testnomatch <- (newtest[which(newtest[, 4] != newtest[, 9] ), ] || newtest[which(newtest[, 6] != newtest[, 11] ), ])

但我不断收到类似

的错误

invalid 'x' type in 'x || y'

有没有办法同时比较多个参数?谢谢你。

怎么了...

 testnomatch<- (newtest[which(newtest[,4] != newtest[,9] ),] || newtest[which(newtest[,6] != newtest[,11] ),]) 

几件事。

首先,|| 需要一个长度为 1 的条件,用于条件语句,如 if(a || b) ....

其次,|的意思是加入相同长度的两个条件。在这里你有一些不同的东西。

所以把各个部分放在一起:

 condition1 <- newtest[,4] != newtest[,9]
 condition2 <- newtest[,6] != newtest[,11]
 jointcondition <- condition1 | condition2
 testnomatch <- newtest[which(jointcondition),]

或一行:

 newtest[which((newtest[,4] != newtest[,9]) | (newtest[,6] != newtest[,11])),]

这应该可行,但当然,我没有机会尝试,因为您没有提供可重现的示例:)