【发布时间】:2017-03-07 14:23:39
【问题描述】:
我有以下矩阵:
> matrix <- matrix(c(1,3,4,NA,NA,NA,3,0,4,6,0,NA,2,NA,NA,2,0,1,0,0), nrow=5,ncol=4)
> n <- matrix(c(1,2,5,6,2),nrow=5,ncol=1)
如您所见,对于我拥有的每一行
- 多个 NA - NA 的数量未定义
- 一个单“0”
我想将 0 作为 n 的子集。预期输出如下。
> output <- matrix(c(1, 3, 4,NA,NA,NA,3,5,4,6,1,NA,2,NA,NA,2,2,1,6,2), nrow=5,ncol=4)
我已经尝试了以下
subset <- matrix == 0 & !is.na(matrix)
matrix[subset] <- n
#does not give intended output, but subset locates the values i want to change
在我的“真实”数据上使用时,我收到以下消息:
警告消息:在 m[子集]
谢谢
编辑:在矩阵中添加了一行,因为我现实生活中的问题是矩阵不平衡。我在这里使用矩阵而不是 DF,因为我认为(不确定)对于非常大的数据集,R 对于大矩阵而不是数据帧的子集更快。
【问题讨论】:
标签: r extract subset extraction