R 从csv文件读取数据需要很长时间

R 从csv文件读取数据需要很长时间,r,csv,R,Csv,我应该读一个大的CSV文件(超过30000行和10000列)。不知何故,我应该逐列读取数据。这是我的代码: con<-file("D:\\Data.csv","r") datalist<-list() for(spalte in 5:5) { for(i in 1:20000) { line<-readLines(con,n=1,warn=FALSE) m<-list(as.integer(unlist(strsplit(line,split="

我应该读一个大的CSV文件(超过30000行和10000列)。不知何故,我应该逐列读取数据。这是我的代码:

con<-file("D:\\Data.csv","r")
datalist<-list()
for(spalte in 5:5)
{
  for(i in 1:20000)
  {

    line<-readLines(con,n=1,warn=FALSE)
    m<-list(as.integer(unlist(strsplit(line,split=","))))
    datalist<-c(datalist,sapply(m,"[[",spalte))

  }

}

con不要为解决好的问题发明自己的解决方案。如果
read.csv
出现内存不足错误,则:

1) 确保您使用的是64位R(无4GB RAM限制)

2) 忽略一些不需要节省空间的行。对于这一点,该方法非常有用

3) 将文件读入数据库,并从中导入所需内容。有很多解决方案;从阅读问题的答案开始

4) 购买更多RAM,或者在具有更多RAM的远程工作站(可能是云服务器)上运行分析,或者使用内存不足的软件包。请参阅。

尝试fread(文件名)。它在data.table包中。读取大文件的速度非常快

system.time(fread('abc.csv'))
user  system elapsed 
0.41    0.00    0.40 

system.time(read.csv('abc.csv'))
user  system elapsed 
2.28    0.02    2.29 

如果您有内存问题,那么按照Richie的建议,使用64位并尝试在服务器上运行,或者您甚至可以使用带有大RAM的AmazonEC2机器

是否绝对有必要逐行读取数据?为什么?如果我使用
read.csv
方法,我会得到一个关于文件大小的错误谢谢,但问题是我需要csv文件中的所有数据有很多选项;最好的取决于您的设置。您使用的是64位R吗?你的机器上有多少内存?你能买到或买更多吗?您可以访问具有更多RAM的工作站,或者使用云计算服务吗?您有权访问任何可用作暂存区的数据库吗?你真的确定需要所有30k列吗?@Kaja你知道这大约是2.2GB的数据吗?在一台典型的计算机上分析这一点既不容易,也不快。问题是,我没有足够的ram。你也可以试试library(“ff”)x