我有一个名为"mat"的49952 obs的大数据框.7597变量,我试图用零替换NA.以下是我的data.frame的示例:
A B C E F D Q Z . . .
1 1 1 0 NA NA 0 NA NA
2 0 0 1 NA NA 0 NA NA
3 0 0 0 NA NA 1 NA NA
4 NA NA NA NA NA NA NA NA
5 0 1 0 1 NA 0 NA NA
6 1 1 1 0 NA 0 NA NA
7 0 0 1 0 NA 1 NA NA
.
.
.
Run Code Online (Sandbox Code Playgroud)
我需要真正的快速工具来替换它们.结果应如下所示: …
我有25个稀疏矩阵的大清单(它们确实很大-其中一个中有100M或更多元素),我需要将它们合并成一个大的稀疏矩阵。
例如:一个矩阵A可能看起来像这样(它是我的100M个元素的真实矩阵的子矩阵):
> A
5 x 4 sparse Matrix of class "dgCMatrix"
SKU
CustomerID 404 457 547 558
100002_24655 1 . . .
100003_46919 . 1 1 .
100007_46702 . . . .
100012_47709 . . . .
100013_46132 1 1 1 1
> dput(A)
new("dgCMatrix"
, i = c(0L, 4L, 1L, 4L, 1L, 4L, 4L)
, p = c(0L, 2L, 4L, 6L, 7L)
, Dim = c(5L, 4L)
, Dimnames = structure(list(CustomerID = c("100002_24655", "100003_46919",
"100007_46702", "100012_47709", "100013_46132"), SKU …Run Code Online (Sandbox Code Playgroud) 我正在尝试用矩阵替换NA - mat- 用零.我正在使用mat[is.na(mat)] <- 0.当我有8945个变量或更小变量的94531观测矩阵时效果很好但我在112039个22752个变量的观测矩阵上尝试它,R表示错误:
if(!nreplace)返回错误(x):缺少值需要TRUE/FALSE
另外:警告消息:
总和(i,na.rm = TRUE):整数溢出 - 使用sum(as.numeric(.))
我不知道我做错了什么,我不明白错误.
这是我的数据结构的一个例子.
small data.matrix :(由真实数据源制作)
> str(mat)
Classes 'data.table' and 'data.frame': 94531 obs. of 18946 variables:
$ 6316506: num 1 0 NA NA NA NA NA NA NA NA ...
$ 6794602: num 0 1 NA NA NA NA NA 0 0 0 ...
$ 1008667: num NA NA 0 1 0 NA NA 0 0 0 ...
$ 6312454: num NA NA 1 …Run Code Online (Sandbox Code Playgroud)