r - 确定矩阵是否至少有一个零元素

标签 r matrix

我相信这是微不足道的 - 尽管如此,任何帮助将不胜感激。

问题很简单:给定一个矩阵,我想得到 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/

相关文章:

r - gtable结构元素说明

java - 两次调用方法类;一次用于行,然后用于列

python - 计算一半对称 numpy 矩阵的更好方法?

r - 在 R 中拟合指数衰减并提取时间常数值

r - 如何在嵌套的 lapply/sapply 函数中附加值?

performance - 没有 for 循环的求和 - MATLAB

python - 如何在 Python 中找到矩阵的维度?

numpy - 通过在 Numpy 或类似工具中进行平均来缩小 3D 矩阵

r - 在逻辑回归后使用 +1sd/-1sd 在 ggplot 中绘制交互图

R:如何访问列表元素的名称?