r - 确定矩阵是否在相同位置具有 NA(逻辑)
问题描述
我想确定两个矩阵是否在同一个位置有 NA。
设置:我们有三个矩阵。我想运行一个函数,告诉我 mat1 和 mat2 在相同的位置有 NA,并告诉我 mat1(和 mat3)与 mat2 在不同的位置有 NA
mat1 <- matrix(nrow=2, ncol =2, data =c(NA,0,0,NA))
mat2 <- matrix(nrow=2, ncol =2, data=c(NA,0,0,NA))
mat3 <- matrix(nrow=2, ncol=2, data = c(NA,0,0,0))
解决方案
比较所有元素的 NA 状态:
> all(is.na(mat1) == is.na(mat2))
[1] TRUE
> all(is.na(mat1) == is.na(mat3))
[1] FALSE
在一个函数中,我会这样做:
> nanana = function(m1, m2){!any(is.na(m1) != is.na(m2))}
我已经颠倒了逻辑,以便any
可以停止检查是否发现任何差异。如果你使用all
它必须遍历每个元素。我不确定这种短路是否在 R 中,但它可能会为您节省一两毫秒。
> nanana(mat1, mat2)
[1] TRUE
> nanana(mat1, mat3)
[1] FALSE
推荐阅读
- python - 图像编码:如何对图像进行注释,以便对强度进行准确加权以进行实例分割
- javascript - 从一个 reducer 共享 Authenticated User 的 UID 到另一个
- javascript - 如何从 node.js 中的 postgresql 脚本中读取
- angular - 属性 'employeeForm' 没有初始值设定项,也没有在构造函数中明确分配
- svelte - 苗条退订实际上是如何工作的?
- php - 使用 curl 获取 XML 发布请求中缺少的 XML 请求
- flutter - Flutter 2.2 更新代码停止工作,某些项目中没有模拟器
- spring - Spring boot (2.3.10) 安全框架记住我会导致非安全页面出错
- python - 如何使用 python 将 xml 标签内的所有内容移动到新的 xml 文件中?
- wordpress - 围绕块元素进行锚链接时的Wordpress奇怪行为