我正在为一个研究项目进行大型模拟——模拟 1,000 个足球赛季并分析结果。由于季节将分布在多个节点上,我需要一种简单的方法将我的输出数据保存到一个文件(或多个文件)中以便以后访问。由于我无法控制节点何时完成,我不能让它们都尝试同时写入同一个文件,但如果它们都保存到不同的文件,我需要一种方法来聚合所有之后的数据很容易。想法?
问问题
413 次
1 回答
0
我不知道这个问题是否已经被问过。但这是我在研究中所做的。您可以遍历文件名并将它们聚合到一个对象中,如下所示
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 回答