矩阵行上的布尔运算符OR

时间:2016-08-25 17:47:35

标签: r

我想在矩阵行上使用布尔R运算符OR。下面是使用apply函数找到我对简单玩具示例的解决方案。这样做最简单/最快捷的方法是什么?这如何推广到其他布尔运算?

b <- matrix(c(T,T,F,T,F,F),3)

apply(b,1, function(x) T %in% x)

2 个答案:

答案 0 :(得分:3)

您可以使用函数any(逻辑“或”)和all(逻辑“和”)。在你的情况下:

apply(b, 1, any)

顺便说一句,我会避免在代码中使用TF:它们是可以在代码中的其他位置重新定义的普通标识符。另一方面,TRUEFALSE不是常量。

答案 1 :(得分:0)

我们可以将矢量化rowSums用于此

rowSums(b)!=0
#[1]  TRUE  TRUE FALSE

或者如果只有两列,也可以使用|运算符

b[,1]|b[,2]
#[1]  TRUE  TRUE FALSE