反正有没有加快R中的以下过程?
theFiles <- list.files(path="./lca_rs75_summary_logs", full.names=TRUE, pattern="*.summarylog")
listOfDataFrames <- NULL
masterDataFrame <- NULL
for (i in 1:length(theFiles)) {
tempDataFrame <- read.csv(theFiles[i], sep="\t", header=TRUE)
#Dropping some unnecessary row
toBeRemoved <- which(tempDataFrame$Name == "")
tempDataFrame <- tempDataFrame[-toBeRemoved,]
#Now stack the data frame on the master data frame
masterDataFrame <- rbind(masterDataFrame, tempDataFrame)
}
Run Code Online (Sandbox Code Playgroud)
基本上,我正在读取目录中的多个csv文件.我想通过堆叠行将所有csv文件合并到一个巨大的数据框中.随着masterDataFrame的大小增加,循环似乎更长.我在linux集群上这样做.
Aru*_*run 13
更新了答案data.table::fread.
require(data.table)
out = rbindlist(lapply(theFiles, function(file) {
dt = fread(file)
# further processing/filtering
}))
Run Code Online (Sandbox Code Playgroud)
fread()自动检测标题,文件分隔符,列类,默认情况下不会将字符串转换为因子..处理嵌入式引号,非常快等.查看?fread更多.
查看旧答案的历史记录.
| 归档时间: |
|
| 查看次数: |
2280 次 |
| 最近记录: |