0

私は研究プロジェクトのために大規模なシミュレーションを行っています。つまり、1,000 シーズンのフットボールをシミュレートし、結果を分析しています。季節は複数のノードに分散されるため、出力データをファイルに保存して後でアクセスできるようにする簡単な方法が必要です。ノードがいつ終了するかを制御できないため、すべてのノードが同時に同じファイルに書き込もうとすることはできませんが、すべてのノードが別のファイルに保存される場合は、すべてのノードを集約する方法が必要になります。後で簡単にデータ。考え?

4

1 に答える 1

0

この質問がすでに出されているかどうかはわかりません。しかし、これが私の研究で行っていることです。ファイル名をループして、次のように1つのオブジェクトに集約できます

require(data.table)
dt1 <- data.table()
for (i in 1:100) {
  k <- paste0("C:/chunkruns/dat",i,"/dt.RData")
  load(k)
  dt1 <- rbind(dt1,dt)
}

agg.data <- dt1
rm(dt1)

上記のコードは、すべてのファイルが異なるフォルダーに保存されているが、同じファイル名であると想定しています。

または、次を使用して、パターンに一致するファイル パスを特定し、それらを組み合わせることができます。

require(data.table)
# Get the list of files and then read the files using read.csv command
k <- list.files(path = "W:/chunkruns/dat", pattern = "Output*", all.files = FALSE, full.names = TRUE, recursive = TRUE)
m <- lapply(k, FUN = function (x) read.csv(x,skip=11,header = T))
agg.data <- rbindlist(m)
rm(m)
于 2016-12-08T01:36:15.887 に答える