【发布时间】:2015-05-16 11:29:32
【问题描述】:
我正在尝试并行运行模拟。
iterations = 50000
sim = foreach(i=1:iterations) %dopar% sim(dataframe, ... )
列表 sim 中的每个项目都是一个具有 40 列和 100 行的数据框。每个数据框都有一个 ID 列。我想通过 ID 确定超过 50,000 次模拟的平均分数。
我尝试了以下方法,但速度很慢,我认为是因为它必须不断地重新增长数据框:
results = do.call(rbind.data.frame, sim)
avg.scores = ddply(sim,~Player,summarise,mean=mean(score))
我还尝试在列表中设置属性以将其转换为适当的数据框 (Most efficient list to data.frame method?),但最终得到的列数超过 25 列和不同的列名
我不确定是否有办法通过遍历列表来计算平均值,或者我是否需要先创建数据框或数据表,然后再计算平均值。
感谢您的任何建议!
【问题讨论】:
-
使用
rbindlistdrom data.table 包