比较 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])),]
这应该可行,但当然,我没有机会尝试,因为您没有提供可重现的示例:)
我有一个大数据框,我在其中打印与另一列不匹配的列。我能够将第 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])),]
这应该可行,但当然,我没有机会尝试,因为您没有提供可重现的示例:)