【问题标题】:How to load packages automatically when opening a project in RStudio在 RStudio 中打开项目时如何自动加载包
【发布时间】:2012-12-23 16:09:23
【问题描述】:

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

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

【问题讨论】:

  • 您至少需要向我们提供您使用的 RStudio 版本以及与之耦合的 R 版本的基本信息。不过好吧……
  • @Gsee 这么说,但我会让更多的问题更明确。你的意思是install.packages() 或library() 或require()?
  • 假设它是“库”:我想指出,OP 的工作流程可能不是最佳的。您应该尝试编写一个脚本来执行所有操作,包括所需的库调用。作为测试您是否做对了:尝试重新启动 R(从 R-Studio 很容易),然后运行您的脚本。如果您遇到错误,错误的工作流程。
  • 编辑了这个问题,所以它实际上是有道理的,因为 OP 没有移动但之前处于活动状态。
  • 相关但不完全重复:How to load packages in R automatically?。请在此处查看我的回答,了解 RStudio 的独特之处。

标签: r rstudio


【解决方案1】:

一般而言,RStudio 中的默认包加载与 R (How to load packages in R automatically?) 中没有什么不同。启动时,R 会在您的本地或失败的主目录或安装目录中检查.Rprofile 文件(在 Mac/Linux 上:./.Rprofile 或 ~/.Rprofile)并执行它,因此任何options(defaultPackages...)) 或它包含的其他与包加载相关的命令。

唯一的小区别是 RStudio 在启动前会“帮助”更改您的默认路径 see "RStudio: Working with Projects",因此您可能会加载不同的或丢失的 .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 中
  • 如果您有多个 .Rprofiles,请在每个文件中添加 cat("Loading .Rprofile.foo") 行,这样您就可以从控制台看到正确的 .Rprofile.xyz 已加载
  • 在每个项目之后,修改、修剪、调整您的 .Rprofile;添加新的用例内容,注释掉不相关的内容,将更改提交到 git

【讨论】:

    【解决方案2】:

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

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

    例如:

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

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

    另见http://www.rstudio.com/ide/docs/using/projects

    【讨论】:

    • 如果 Joris 的假设是正确的,那么这个问题将与此重复:stackoverflow.com/questions/10300769/…。但是,如果您用谷歌搜索“自动打开软件包 r”,它会出现在该问题之前。
    • @Largh 不完全是重复的。请注意在谈论 RStudio 中的项目与在启动时在 R 中加载时,您必须保存 .Rprofile 文件的位置的区别。虽然这两种方法背后的机制是相同的,但在这种情况下,保存文件的位置确实很重要。
    • 我的行为略有不同——我必须在 .Rprofile 中同时包含“require”和“library”命令才能自动加载包。我不明白为什么会这样 - 文档表明任何一个都应该足够了,但我仔细检查了,我需要调用两者才能访问这些方法。我正在使用 R 3.0.3 和 RStudio 0.98。包是 seqinr,如果这很重要的话。从控制台工作时,任一命令都有效。很奇怪。
    • 如果您使用的是Windows并想创建.Rprofile,则会出现错误消息。改为创建.Rprofile.(请参阅文件名后面的附加点)。最后一个点将被省略,文件就在那里。 (在这里找到:gist.github.com/ozh/4131243)
    • @Phann 你可以,但你必须设置你的 Windows 允许它。你不能通过普通的资源管理器。但在 R 中,您可以毫无问题地执行 file.create(".Rprofile")。只需确保您的 Windows 设置为显示隐藏文件,否则您将找不到它。
    猜你喜欢
    • 2017-10-11
    • 2012-10-13
    • 2016-01-09
    • 2021-10-14
    • 2023-04-08
    • 2019-01-13
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多