安全地覆盖R中的对象

时间:2017-03-15 23:26:14

标签: r save overwrite s4

我在R(~10GB)中使用相当大的S4对象。通常,我想加载它们,对它们做一些事情,然后保存结果。理想情况下,我只是使用SaveRDS覆盖对象。例如:

a = readRDS(object_file)
a = do_something()
saveRDS(a, file=object_file)

然而,这似乎不安全,因为如果文件被破坏,那么我将失去我的所有工作。例如,我远程工作,如果我的互联网断开连接,我担心它只会写入部分文件。同时,我不想保存对象的多个副本,因为那时我需要手动组织它们并删除旧版本。

我正在考虑的方法是这样的:

a = readRDS(object_file)
a = do_something()
saveRDS(a, file=temporary_file)
b = readRDS(temporary_file)
system(paste('mv', temporary_file, object_file))

这有什么问题吗?有没有更好的方法来验证文件并写入文件?我认为" mv"命令很快,所以打断它就不那么担心了。我试过环顾四周,但找不到任何东西。

0 个答案:

没有答案