嗨我有一个文件结构如下
12 45 56
34 65 31
12 23 43
Run Code Online (Sandbox Code Playgroud)
等我有一个庞大的数据集
所以我有3列的文本文件,但我想创建稀疏矩阵的方式是每行说12 45 56 .....第一个数字即行第二个数字,即45是列和第三个数字(即56)是稀疏矩阵的第12行和第45列的值
我做了以下事情
>x = scan('data.txt',what=list(integer(),integer(),numeric()))
Read 61944406 records
> library('Matrix')
Loading required package: lattice
N
> N= sparseMatrix(i=x[[1]],j=x[[2]],x=x[[3]])
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误
Error in validObject(r) :
invalid class “dgTMatrix” object: all row indices (slot 'i') must be between 0 and nrow-1 in a TsparseMatrix
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我弄清楚我做错了什么?
小智 5
我遇到了完全相同的问题,在尝试了许多事情后,解决方案来自于阅读sparseMatrix函数的帮助.参数index1指定索引是从1开始还是从0开始.
N= sparseMatrix(i=x[[1]],j=x[[2]],x=x[[3]], index1=FALSE)
Run Code Online (Sandbox Code Playgroud)