我想知道使用data.table fread函数读取行数是否有限制。我的表格有40GB,4亿行,4列。看起来fread只会读取前大约8.4亿行。它没有报错,但是返回到R提示符,就好像已经读取了所有的数据一样!
我知道fread目前不适用于"prod use",我想知道是否有任何时间框架来实现生产版本。
我使用data.table的原因是,在处理这样大小的文件时,与加载数据框等相比,它非常高效。
目前,我正在尝试另外两种选择 -
1)使用scan并传递给data.table
data.table(matrix(scan("file.csv",what="integer",sep=","),ncol=4))
Resulted in --
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
too many items
2)使用Unix的split将文件分割成多个单独的段,每段限制为大约5亿行,然后按顺序逐个读取它们... 然后循环顺序地进入fread - 有点麻烦,但似乎是唯一可行的解决方案。
我认为可能有一种更快速的Rcpp方法来实现这一点,但不确定通常如何实现。
提前致谢。