将稀疏矩阵中的所有 NaN 元素设置为零
Set all NaN elements in sparse matrix to zero
R 中的 Matlab 语句 X(isnan(X))=0
等价于什么?注意 X
在 R 中属于 matrix.csr
类型。(这来自 pkg:SparseM。)
R中的函数其实是is.na.
然后你就可以像在 Matlab 中一样使用逻辑索引(只是要小心使用方括号):
X[is.na(X)]=0
您确定要使用 matrix.csr class 吗?它来自 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 没有被广泛使用。
R 中的 Matlab 语句 X(isnan(X))=0
等价于什么?注意 X
在 R 中属于 matrix.csr
类型。(这来自 pkg:SparseM。)
R中的函数其实是is.na.
然后你就可以像在 Matlab 中一样使用逻辑索引(只是要小心使用方括号):
X[is.na(X)]=0
您确定要使用 matrix.csr class 吗?它来自 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 没有被广泛使用。