11
Rに次の処理を高速化する方法はありますか?複数のCSVを1つのデータフレームに高速に読み込む方法はありますか?
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)
}
基本的に、私はディレクトリ内の複数のcsvファイルを読んでいます。私は、行を積み重ねることで、すべてのcsvファイルを1つの巨大なデータフレームに結合したいと考えています。 masterDataFrameのサイズが大きくなるにつれ、ループの実行時間は長くなります。私はLinuxクラスタ上でこれをやっています。
ありがとうございます。 rbindlist本当に物事をスピードアップ! – WonderSteve
あなたがdata.tableのパスを下っている場合、 'read.csv'の代わりに' fread'を使います。 – mnel