我有一个包含多个条件和参与者的大型数据集。我正在使用ddply,以便对于参与者X条件的每种组合,我可以运行许多功能并保存 final 输出。由于需要花费一些时间来实现目标软件包的各种功能,因此整个分析可能需要1-2周。因此,我不仅要等待ddply函数将 final 输出保存在单个数据帧中,而且还想保存临时输出,以防计算机崩溃而无法完成工作。到那时为止已保存(即某种备份)。例如,如果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)。