【发布时间】:2021-05-02 17:31:03
【问题描述】:
假设我们有一个函数,在一个非常长的过程之后,返回另一个函数作为输出。
仅为了说明目的,请描绘以下功能:
f = function() {
starting_time = Sys.time()
a = 0
while (difftime(Sys.time(), starting_time, units = "days") < 1) {
a = a + 1
}
g = function(x) {
a*x
}
return(g)
}
在我们的示例中,函数 f 将运行一整天,然后返回函数 g。我们可以通过执行 my_function = f() 将函数 g 赋值给一个变量。
问题是我想让 f 只运行一次,以便检索 g,然后导出 g,这样我就可以共享它而无需再次运行 f。 p>
如果可能的话,我希望有一个不涉及保存工作区的解决方案。我想知道,就像 write.csv 允许我们在不保存工作空间的情况下导出数据帧一样,是否有类似的函数来导出函数。
【问题讨论】:
-
writeRDS可以写任何 R 对象。您的函数可能存在环境问题...它可能不仅仅取决于对象。我不确定saveRDS对此的解释如何,或者在您的特定情况下是否重要。
标签: r