我刚刚看到一个看起来像是一个被删除的非常好的问题,因为像原来的提问者我找不到重复,我再次发帖.
假设我有一个简单的矩阵("m"),我想用另一个逻辑矩阵("i")索引,保持原始矩阵结构完整.像这样的东西:
# original matrix m <- matrix(1:12, nrow = 3, ncol = 4) # logical matrix i <- matrix(c(rep(FALSE, 6), rep(TRUE, 6)), nrow = 3, ncol = 4) m i # Desired output: matrix(c(rep(NA,6), m[i]), nrow(m), ncol(m)) # however this seems bad programming...
使用m[i]
返回向量而不是矩阵.实现这一目标的正确方法是什么?
原始海报添加了评论说他已经找到了解决方案,然后几乎立即将其删除:
m[ !i ] <- NA
我已经开始使用该is.na<-
函数提供了稍微不同的解决方案的答案:
is.na(m) <- !i
这两种解决方案似乎都是依赖于逻辑索引的合理R代码.(i
实际上并不依赖于矩阵结构.适当长度和条目的向量也将保留矩阵结构m
.)