R:如何在Windows上逐个读取带有R的大数据集(> 35 MM行)?

时间:2014-02-24 22:38:51

标签: r large-data

如何读入/操作R中超出分配内存限制的数据集?

修改: 到目前为止帮助很大,谢谢。让我添加一个额外的约束。服务器是企业所有,我没有管理访问权限。有没有办法使用read.table或类似的东西读取部分文件(例如,通过指定nrows一次只能读取100,000行)?需要一个可以在当前环境下运行的解决方法,所以不能使用fread,bigmemory等。

我的目标数据集包含大约3200万行,包含30列,分为12个大致相同的文件(一些是可读的,一些不是)。

文件是“|”分隔并存储在12个单独文件中的远程服务器上。大约一半的文件可以使用R读取,另一半可以超过允许的限制。

我正在使用一个简单的read和rbind脚本:

path<-"filepath/mydata/contains 12 files.txt/"
fulldf<-data.frame()
for(i in 1:length(dir(path))){
    file1<-read.table(file=paste0(path,dir(path[i]), sep="|", fill=T, quote="\"")
    fulldf<-rbind(fulldf,file2)
}

我主要希望能够将数据子集化并将其写入.csv(例如,逐个读取数据,按位置逐个读取rbind),但有些文件太大而不能均匀读入。

有没有办法一块一块地读取大文件的一部分,即将不可读的文件拆分成可读的文件?

系统: Microsoft Windows Server 2003 R2 企业版 Service Pack 2

计算机: 英特尔(R)Xeon(TM)MP CPU 3.66GHz 3.67 GHz,12.0 GB RAM 物理地址扩展

> sessionInfo()
R version 2.12.1 (2010-12-16)
Platform: i386-pc-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] data.table_1.7.1

loaded via a namespace (and not attached):
[1] tools_2.12.1

1 个答案:

答案 0 :(得分:0)

我认为chunk.reader read.chunkchunk.applyread.table的{​​{3}}可能正是您所寻找的。

如果您无法安装软件包,那么我会收集nrows skipcolClasses参数应该做什么?您可以使用<!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="style.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> </script> </head> <body> <div class="container flex our-people clearfix"> <div class="tile"> <h4>Peter Bolton - Partner</h4> <img src="img.jpg" /> <p>Peter Bolton lives in Burnley with his wife and two children.<span class="hiddenSpan">Peter was admitted as a solicitor in May 1975, having completed two years Articles with a Blackburn firm of solicitors.</span><a href="#" class="showMore">Show more</a></p> <a href="mailto:" class="btn">Send email <i class="fa fa-caret-right" aria-hidden="true"></i></a> </div> <div class="tile"> <h4>Peter Bolton - Partner</h4> <img src="img.jpg" /> <p>Peter Bolton lives in Burnley with his wife and two children.<span class="hiddenSpan">Peter was admitted as a solicitor in May 1975, having completed two years Articles with a Blackburn firm of solicitors.</span><a href="#" class="showMore">Show more</a></p> <a href="mailto:" class="btn">Send email <i class="fa fa-caret-right" aria-hidden="true"></i></a> </div> </div> <script src="script.js"> </script> </body> </html> 参数来确保它们都具有相同的列类。