你能建议我一种在 R 中自动加载包的方法吗?我的意思是,我想在 R 中启动一个会话,而无需library('package name')
多次使用。假设我下载了下次启动 R 时要使用的所有包。
4 回答
放入library(foo)
您的.Rprofile
文件或设置R_DEFAULT_PACKAGES
:请参阅?Rprofile
...
特别是(因为?Rprofile
很长并且可能令人生畏):
如果您在开始时想要一组与默认软件包不同的软件包,请在“.Rprofile”或“Rprofile.site”文件中插入对“options”的调用。例如,'options(defaultPackages = character())' 将在启动时不附加任何额外的包(仅 'base' 包)(或在运行 R 之前将 'R_DEFAULT_PACKAGES=NULL' 设置为环境变量)。使用 'options(defaultPackages = "")' 或 'R_DEFAULT_PACKAGES=""' 强制使用 R系统默认值。
由于您可能确实希望加载所有默认包,然后再添加额外的包(而不是不加载某些默认包),您可以将
library("mypackage1")
library("mypackage2")
[etc.]
或使用options(defaultPackages=...)
:
options(defaultPackages=c(getOption("defaultPackages"),
"mypackage1","mypackage2", ... [etc.]))
在您.Rprofile
将所需的包附加到标准默认值。
编辑(从评论中复制)重新让它在Rstudio中工作:
http ://rstudio.org/docs/using/workspaces 建议 Rstudio 执行.Rprofile
然后“执行 R 启动中描述的其他操作 [ http://stat.ethz .ch/R-manual/R-patched/library/base/html/Startup.html ]"(与 相同?Rprofile
)。看不看都是模棱两可的Rprofile.site
。
编辑#2:根据下面的评论,它确实适用于最新版本的 Rstudio。
有一个名为 .Rprofile 的文件,它只是一个脚本,每次启动 R 的新会话时都会运行。
你需要做的就是添加library(package)
它。如果您使用的是 Unix,它可能作为隐藏文件位于您的主文件夹中。
关于自定义 R 启动的 Quick-R 页面包含的信息与 Ben 和 Joao 的答案基本相同,但可能更清晰一些。Rprofile.site
在您的主文件夹(Windows 上的文档)中创建具有所需更改的文件副本并调用它.Rprofile
编辑:我注意到 R 3.0.0 不再从 Documents 文件夹中查找,而是在 Windows 7 下使用用户的主目录(用户名)。但这可能是一个安装问题(即我碰巧“错误地”安装了 R之前)。但是,此答案中链接的 Quick-R 页面告诉了这样做的正确方法。如果其他人遇到这个问题,解决方案是复制.Rprofile
到用户的主目录。
快速的回答是,您应该按照每个人的建议将您的 R 包放入.Rprofile
文件中。
但是请注意,R 将读取此文件,然后加载 R 基础包。从?Startup看:
请注意,当获取站点和用户配置文件时,仅加载基本包,
如果您要加载的包增强/覆盖某些 R 基本函数,这可能会导致问题。例如,请参见 tidyverse::filter:https ://github.com/tidyverse/dplyr/issues/1611
到目前为止,我可以看到两种解决方案:
.First.sys()
在文件的第一行使用.Rprofile
:这是通常在读取 .Rprofile 后运行的命令,用于加载 .Rprofile 中的包getOption("defaultPackages")
。更新选项defaultPackages:不要
library()
在你的 .Rprofile 中使用,而是类似的东西。old <- getOption("defaultPackages") options(defaultPackages = c(old, "tidyverse"))