R极慢的处理循环

时间:2014-11-07 20:20:16

标签: r

所以我从一个相对不错的excel文件(~20万行,35列)收集数据。使用节名称,循环计数分解数据,然后下一行是数据,数据部分的末尾是空行。所以这是我的函数获取数据,参数的文件是以.csv结尾的目录中所有必须被解析的文件,name是你想要获得的数据部分的名称。该功能有效,但它以蜗牛的​​速度运行,我的意思是处理10k线约4分钟。

getData1 <- function(file,name) {
  for(i in 1:length(file)) {
    dat <- c()
    lines <- readLines(file[i])
    indx <- grep(name,  lines) #row number for anything with search term in it

    counter <- 3
    dat <- c(read.table(text=lines[(indx+2)],
                      sep=",", header=FALSE, stringsAsFactors=FALSE, check.names=FALSE))

    while(dat[counter-2] != "\t") {
         dat <- c(dat,read.table(text=lines[(indx+counter)],  #read only one line per loop
                             sep=",", header=FALSE, stringsAsFactors=FALSE, check.names=FALSE))

         counter <- counter + 1
    }
    return(dat)
  }
}  

0 个答案:

没有答案