在R中我可以用工作区保存加载的包吗?

时间:2011-08-18 23:08:48

标签: r package workspace

R通常只保存.GlobalEnv中的对象:

$ R
> library(rjson)
> fromJSON
function (...) ...
> q(save='yes')
$ R
> fromJSON
Error: object 'fromJSON' not found

有没有办法保存这些信息?

4 个答案:

答案 0 :(得分:5)

据我所知,没有。工作区用于对象,如数据和函数。使用特定包加载R是你的.Rprofile文件的用途,你可以在每个目录中使用不同的文件。

我想,你可以在工作区中保存一个函数来加载你想要的软件包,然后在你第一次启动R时运行该函数。

答案 1 :(得分:4)

您现在可以将R会话信息保存到文件中并将其加载到另一个会话中。

首先安装"会话"包:

install.packages('session')

加载库和数据,然后将会话状态保存到文件中:

library(session)
library(ggplot2) # plotting

test <- 100

save.session(file='test.Rda')

然后您可以在另一个会话中加载会话状态:

library(session)

restore.session(file='test.Rda')

#ggplot2 (and associated data) should have loaded with the session data
head(diamonds)
ggplot(data = diamonds, aes(x = carat)) +
  geom_histogram()

print(test)

参考:https://www.rdocumentation.org/packages/session/versions/1.0.3/topics/save.session

答案 2 :(得分:2)

joran是对的,但我想提一种虽然繁琐但可能有用的技术。

您可以使用DMTCP等检查点程序来保存整个R进程并稍后重新启动。

答案 3 :(得分:2)

我建议不要在r会话之间保存任何内容,而是使用代码重新创建它。这更可能导致可重复的结果。