我相信这是微不足道的 - 尽管如此,任何帮助将不胜感激。
问题很简单:给定一个矩阵,我想得到 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")}
发出警告。有没有一种简单的方法可以做到这一点?
最佳答案
生成警告是因为您提供的是 if
的逻辑向量,它需要一个值。 any
是一个函数,用于判断是否有任何逻辑值是 TRUE
:
any(A==0)
## [1] TRUE
any(B==0)
## [1] FALSE
还有一个功能
all
它确定逻辑向量中的所有值是否都是 TRUE
.
关于r - 确定矩阵是否至少有一个零元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21081379/