我有一个包含多个条件和参与者的大型数据集 . 我正在使用ddply,这样对于参与者X条件的每个组合,我可以运行许多函数并保存最终输出 . 由于从感兴趣的包中实施各种功能需要一些时间,因此整个分析可能需要1-2周 . 因此,我不仅希望等待ddply函数将最终输出保存在单个数据帧中,而且还希望保存临时输出,以防计算机崩溃,从而保存到目前为止完成的工作(即一种备份) . 例如,如果ddply函数在计算机失败之前运行了30个参与者(90个中)的所有条件,我希望保存这30个参与者的数据输出,这样我只需要在参与者上运行脚本31 -90下次我开始这个 . 有没有办法使用ddlpy函数执行此操作?我在下面提供了一个示例脚本,它是实际脚本的简化版本,但应该(希望)捕获与该问题相关的本质 .

library(plyr)

DF <- data.frame(Participant = sort(rep(1:90, 90)),
                 dv = rnorm(8100)+300, 
                 iv.x = rep(sort(rep(letters[1:3], 30)), 90), 
                 iv.y = rep(rep(sort(rep(rev(letters)[1:3], 10)), 3),90)
                 )


ef = function(condition1, condition2, dv) {
  # Some example functions
  ef.m <- mean(dv, na.rm = TRUE)
  ef.sd <- sd(dv, na.rm = TRUE)

  # dataframe containing the data               
  data.frame(ef.m, ef.sd)
}

ef.all <- plyr::ddply(DF,.(Participant, iv.x, iv.y), 
                   .fun = function(DF.sub){ef(DF.sub$iv.x, DF.sub$iv.y, DF.sub$dv)})

我还应该注意到,我并不一定会坚持使用ddply,并且我可以提供其他建议以快速方式运行(例如使用data.table) .