在稀疏矩阵中将空白转换为NA

时间:2018-07-31 23:07:59

标签: r matrix sparse-matrix

我有一个稀疏矩阵,正在读入R并使用以下代码转换为矩阵

nodeToAdd.name = "Colour\(targetName)"

但是,gt <-readMM("matrix.mtx") gt_0 <- as.matrix(gt) 对象中的空白字段在gt调用期间被转换为0。

问题在于我的矩阵的实际值是二进制(0 | 1),因此填充0使得下游分析无法进行。

我希望在空白处填充NA(如果可能不为0

非常感谢您的任何建议

1 个答案:

答案 0 :(得分:0)

在将0转换为NA

后,只需用dgTMatrix s 替换matrix s
# Sample data
library(Matrix)
gt <- Matrix(0+1:28, nrow = 4)
gt[-3,c(2,4:5,7)] <- gt[ 3, 1:4] <- gt[1:3, 6] <- 0
gt <- as(m, "dgTMatrix")

# Convert to matrix and replace 0s with NAs
gt_0 <- as.matrix(gt)
gt_0[gt_0 == 0] <- NA
gt_0
#     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
#[1,]    1   NA    9   NA   NA   NA   NA
#[2,]    2   NA   10   NA   NA   NA   NA
#[3,]   NA   NA   NA   NA   19   NA   27
#[4,]    4   NA   12   NA   NA   24   NA