【发布时间】:2019-01-22 11:33:44
【问题描述】:
我有兴趣在 R 中找到策略来运行一些代码以产生必要的输出,然后保存,或者如果 RData 文件存在,则加载它而不是运行代码。
举例:
if(!file.exists("saved.RData"){
savethis <- c(1,2,3,4)
save(savethis, file="saved.RData")
}
if(file.exists("saved.RData"){
load("saved.RData")
}
感谢任何想法,我已经环顾四周,但对此并不多。也对使用什么保存策略感兴趣,我通常将多个对象保存到一个文件中。RData,当然命名适当!
【问题讨论】:
-
也许
if( !("saved.RData" %in% list.files(getwd())) ) { savethis <- c(1,2,3,4) ; save(savethis, file="saved.RData") } else { load("saved.RData") } -
谢谢,认为这是我将不得不使用的东西,我认为可能有一些更巧妙的方式,但也许没有!
-
我想这里唯一的问题是你可能有一些初始数据或代码生成
c(1, 2, 3, 4)可能会改变,如果它确实你想重建“saved.RData”,即使它存在。 Make 并且可能 NextFlow 会为您解决这个问题。如果您想留在 R 中,另一种选择是使用git2r将您的代码和数据文件放入 git 存储库中,然后像您的示例一样编写代码来检查您的工作流程的哪些部分发生了变化。 -
是的,好点。我以交互方式工作,所以当我对我们的结果感到满意时,编辑
RData的保存。对于最终的完整运行,NextFlow确实会处理输入的更改,因此会创建新的输出。正如您指定的那样,我还拥有Github上的功能。尚未深入研究git2r,可能现阶段需要!感谢您的意见,非常感谢。
标签: r