我有一个大的ffdf,我是用16GB的分隔文件创建的。 Pertient信息如下。
ffdf (all closed) dim=c(793987635,3), dimorder=c(1,2) row.names=NULL
ffdf virtual mapping
PhysicalName VirtualVmode PhysicalVmode AsIs VirtualIsMatrix PhysicalIsMatrix PhysicalElementNo
uID V1 integer integer FALSE FALSE FALSE 1
cID V2 integer integer FALSE FALSE FALSE 2
value V3 double double FALSE FALSE FALSE 3
PhysicalFirstCol PhysicalLastCol PhysicalIsOpen
uID 1 1 FALSE
cID 1 1 FALSE
value 1 1 FALSE
ffdf data
我正试图运行它 acast(data,“uID”〜“cID”,value.var =“value”)
但是得到一个错误 “错误:无法分配大小为5.9 Gb的矢量”
我刚刚开始使用ffdf而且我想知道我想要做的事情是不可能的,因为数据的大小,或者是否有替代acast我应该使用。
现在的数据是“标准化的”,但我正在考虑构建一个表格......
uID1 cID1 0.123
uID1 cID2 0.123
uID1 cID3 0.123
...
uID2000 cID1 0.123
uID2000 cID2 0.123
uID2000 cID3 0.123
...
...
我正在寻找的输出是 uID cID1 CID2 CID3 ...
uID1 0.123 0.123 0.123
uID2 0.123 0.123 0.123
uID3 0.123 0.123 0.123
etc.
我已成功使用acast在较小的数据集上执行类似操作,但我之前从未使用过8亿行。每个uID大约有200个cID。
任何建议都表示赞赏,即使它只是告知我想要做的事情是不可能的。
谢谢。