我有一个人类可读的文件,其中包含10亿个double数,它们全部写在一行中(10亿列)。
文件本身只有8G左右,我正在使用
fread("filename.data", sep=" ", header=FALSE, data.table=TRUE, showProgress=TRUE)
将它们加载到R会话中。该脚本将始终被“杀死”,而我从showProgress
获得的最多信息是
*捕获了段错误* 地址0x7efc7bed2010,导致“内存不 映射的
我过去使用相同的方法加载了更大的文件(原始大小),但可能是以“矩阵形式”并且列较少。我猜想data.table需要存储10亿个列名,这会占用大量内存...这是正确的吗?
fread
直接进入行向量(与读取后转置相反)?答案 0 :(得分:0)
将单个行读取为单列?
你去..
library(data.table)
#read using default separators
fread('v1,v2,v2,v3
this, is, a, test
of, fread,one,line')
# v1 v2 v2 v3
# 1: this is a test
# 2: of fread one line
#read one column per line/row
fread('v1,v2,v2,v3
this, is, a, test
of, fread,one,line', sep = "", header = FALSE)
# V1
# 1: v1,v2,v2,v3
# 2: this, is, a, test
# 3: of, fread,one,line