应该.RData文件用于存储功能吗?

时间:2016-09-20 04:18:27

标签: r rdata

我使用.RData文件来存储对象(例如列表,向量等)然后将它们调用到其他脚本中,但我想知道它们是否也应该用于存储函数(很可能是用户定义的函数)? / p>

我知道source()通常建议用于此目的(并创建packages更多),但我看到的一个优点是单个.RData文件可以包含多个对象 - 列表例如,数据帧和函数。保存需要使用load()调用对象,然后使用source()单独调用该函数。

有没有理由对这种方法保持谨慎,我没有看到?

谢谢

1 个答案:

答案 0 :(得分:0)

在我以前的工作中,我们习惯于序列化闭包:

> f <- (function(x) function() x)(2)
> f()
[1] 2
> saveRDS(f, file='/tmp/f')

然后

> f <- readRDS('/tmp/f')
> f()
[1] 2

这可以让您将数据(例如系数)与函数捆绑在一起。但要小心,你的图书馆不会自动加载。