我正在处理大的 csv 文件(~500-700MB),所以我正在按块查看它们。我尝试了read.csv()函数,但由于要跳过的行的数量增加,因此速度非常慢,因此我发现data.table::fread()
是一种更快的读取文件的方式。(R-Blogger和{{3}但是当我正在阅读带有fread()的60MB csv
文件时它工作正常stackOverflow但是当我在相同类型的更大文件(~450MB)上尝试它时,它会显示 R Session中止
两个文件具有相同的结构,只是大小不同。我无法理解为什么它不起作用,因为人们正在阅读更大尺寸的文件。
这是我的代码段 -
library(data.table)
ffName = "Bund001.csv"
s<- Sys.time()
ColNamesVector <<- c("RIC","Date","Time","GMT_Offset","Type","Price","Volume","Bid_Price","Bid_Size","Ask_Price","Ask_Size","Qualifiers")
rawData <- fread(ffName,sep=",",nrows = 100000,skip = 400000,col.names = ColNamesVector)
print(Sys.time()-s)
答案 0 :(得分:3)
您先检查NEWS吗? (其他提示在data.table Support page上。)
您的问题中包含的屏幕截图显示您正在使用1.10.4。幸运的是,目前NEWS显示自那时起fread
已经进行了14次改进,其中许多与您的问题相关。请尝试开发。 installation page解释了Windows的预编译二进制文件是为您制作的,以及如何获取它。您不需要安装任何工具。该页面解释说,如果不能解决问题,您可以轻松恢复。
请从开发人员尝试v1.10.5并接受此答案,如果修复它。
答案 1 :(得分:-2)