.csr java_r:非常大的matrix.csr到矩阵:整数溢出

以下代码(特别是 as.matrix )仅在打开非常大的libsvm文件时失败 . 它适用于较小的文件

rawmforCluster=read.matrix.csr(filePath)

sparseforCluster=rawmforCluster$x

str(sparseforCluster)

sparseMatrixforCluster=as.matrix(sparseforCluster)

sparseforCluster 的结构是

Formal class 'matrix.csr' [package "SparseM"] with 4 slots

..@ ra : num [1:4860285] 1 1 2 1 1 1 1 1 1 1 ...

..@ ja : int [1:4860285] 77 668 716 1086 1202 1306 1527 2184 2545 2729 ...

..@ ia : int [1:659095] 1 18 25 26 31 36 52 59 67 72 ...

..@ dimension: int [1:2] 659094 3778

我得到的错误是

double(nrow * ncol)错误:向量大小不能为NA另外:警告消息:在nrow * ncol:由整数溢出产生的NAs

Question 如何将数据强制转换为矩阵或(次优)data.table? (或者我应该寻求其他解决方案吗?)

Update 我发现标准解决方案是通过删除稀疏(低频)项来减小矩阵的大小 . 在我的情况下,这不是一个选项,因为一些低频项可能与某些子集高度相关 .

我也读过有关bigmemory包的内容 . 但是,这似乎不适用于matrix.csr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值