15

每次我重新启动 RStudio 时,它都需要我重新加载之前在工作区中加载的所有包。我似乎无法弄清楚问题是什么,RStudio 在关闭项目时正在保存它们。

当我打开项目时,如何确保 RStudio 重新加载必要的包?

4

2 回答 2

30

我假设您想说您必须重新加载之前在工作区中加载的所有包。这不是错误,这是设计使然。

如果您想在项目启动时加载一些包,您可以通过在项目目录中创建一个名为的文件.Rprofile来实现,并指定您希望 RStudio 在加载项目时运行的任何代码。

例如:

cat("Welcome to this project.\n")
require(ggplot2)
require(zoo)

将在控制台中打印一条欢迎消息,并在每次打开项目时加载ggplot2和加载。zoo

另请参阅http://www.rstudio.com/ide/docs/using/projects

于 2013-01-09T15:28:21.270 回答
3

通常,RStudio 中的默认包加载与 R 中的默认包加载没有什么不同(如何在 R 中自动加载包?)。启动时,R 检查.Rprofile本地或失败的文件,主目录或安装目录(在 Mac/Linux:./.Rprofile或 else上~/.Rprofile)并执行它,因此options(defaultPackages...))它包含的任何或其他与包加载相关的命令。

唯一的小区别是RStudio 在启动前“有用地”更改了您的默认路径, 请参阅“RStudio:使用项目”,因此您可能会加载不同或缺少的 .Rprofile 或错误的 .Rprofile,具体取决于您是否打开了 RStudio项目或只是普通文件,以及您的 RStudio 默认工作目录设置为什么。并不总是清楚你在哪个目录,所以有时这会导致真正的悲伤。

我倾向于在不将我的代码定义为 RStudio 项目的情况下使用 RStudio,仅仅是因为它很笨拙,并且在不添加任何内容的情况下创建了更多文件和目录(无论如何,对于我的用例)。因此,我发现维护 .Rprofile 并确保加载正确的解决方案是从项目目录到我的可靠的旧 Unix 链接 ~

ln -s ~/.Rprofile ./.Rprofile

(如果你在 Windows 上,那就更痛苦了。)

您不需要拥有一个全局 .Rprofile,您可以为不同类型的项目或树保留特定于任务的文件,或者(比如说).Rprofile.nlp、.Rprofile.financial、.Rprofile.bio 等等. 此外options(default.packages,您还可以收集所有与主题相关的设置:scipen、width、data.table/dplyr-specific options、searchpath...

电源提示:

  • 显然保留您宝贵的 .Rprofile(s) 的备份或 SCM。一定要确保 git 正在跟踪它,所以不要把它放在 .gitignore
  • 如果您有多个 .Rprofile,cat("Loading .Rprofile.foo")请在每个中添加一行,这样您就可以从控制台看到正确的 .Rprofile.xyz 已加载
  • 在每个项目之后,修改、修剪、调整您的 .Rprofile;添加新的用例内容,注释掉不相关的内容,将更改提交到 git
于 2018-02-19T03:48:21.107 回答