所以我从一个相对不错的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)
}
}