【发布时间】:2022-06-14 17:06:12
【问题描述】:
我有一些需要很长时间才能计算的 lapply 代码。像这样的:
n <- 10^7
res <- lapply(1:n, function(i){
print(round(i/n*100, 0))
rnorm(100)
})
我们能否在round(i/n*100, 0) 低于 100%(即代码仍在运行)时以某种方式保存中间结果?
我现在正在运行我的实际lapply() 代码,print(round(i/n*100, 0)) 部分告诉我我的计算机快完成了(99%!)。问题是我需要关闭电脑,因为我离开了我的工作地点。在res <- lapply(...) 部分仍在运行时,是否有机会获得 R 迄今为止计算的数据?真不希望他明天再计算那99%的年龄..
【问题讨论】:
-
使用
for循环,并在每次迭代时将中间结果写入磁盘。 -
@GregorThomas 这是下一次的想法..
-
是的,如果您的代码已经在运行,那么更改它为时已晚。
-
如果您停止执行
for循环,状态将存在于它被中断的位置,但如果您停止执行lapply,任何未返回的结果都将丢失。
标签: r save lapply environment