将稀疏矩阵中的所有NaN元素设置为零

时间:2015-01-20 18:43:46

标签: r nan sparse-matrix

R中的Matlab语句X(isnan(X))=0的等价物是什么?注意X在R中的类型为matrix.csr。(这是来自pkg:SparseM。)

2 个答案:

答案 0 :(得分:1)

您确定要使用matrix.csr类吗​​?它来自SparseM包,据我所知,至少从包文档中可以看出,没有is.na<-is.na[方法。 Matrix-package确实记录了is.na-methods:

> library(Matrix);M <- Matrix(1:6, nrow=4, ncol=3,
+        dimnames = list(c("a", "b", "c", "d"), c("A", "B", "C")))
> stopifnot(all(!is.na(M)))
> M[2:3,2] <- NA
> M[is.na(M)] <- 0
> M
4 x 3 Matrix of class "dgeMatrix"
  A B C
a 1 5 3
b 2 0 4
c 3 0 5
d 4 2 6

Matrix包现在是推荐的包之一。我的印象是SparseM没有广泛使用。

答案 1 :(得分:0)

R中的函数实际上是is.na。

然后你可以使用逻辑索引,就像你在Matlab中使用一样(只是小心使用方括号):

X[is.na(X)]=0