确定矩阵是否至少有一个零元素
问题描述:
我相信这是微不足道的 - 尽管如此,任何帮助将不胜感激。确定矩阵是否至少有一个零元素
问题很简单:给定一个矩阵,如果所讨论的矩阵至少有一个元素等于零,我想得到TRUE
。所以,检查
A <- matrix(c(1, 2, 3, 4, 5, 0), nrow = 2, ncol = 3, byrow = TRUE)
> A
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 0
将返回TRUE
,而
B <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3, byrow = TRUE)
> B
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
将返回FALSE
。
喜欢的东西
if (A == 0) { cat("\nZero detected")}
发出警告。有没有简单的方法来做到这一点?
答
警告。 any
是一个功能告诉如果逻辑值中的任意是TRUE
:
any(A==0)
## [1] TRUE
any(B==0)
## [1] FALSE
还有一个功能all
,其确定在逻辑向量中的值的所有是TRUE
。
答
尝试
0 %in% A
它应该返回TRUE或FALSE。它适用于NA太:因为你呈现的逻辑载体来if
,这要求单一值产生
x = matrix(1:24, ncol = 4)
x[3, 3] = NA
NA %in% x
#TRUE
谢谢马修,两个很好的答案,但你在费尔南多前就到了那里。非常感谢你们这样的快速反应! – HypersonicNinja