你能否建议我自动在R中加载包裹?我的意思是,我想在R中开始一个会话,而不需要多次使用library('package name')
。假设我下次启动R时下载了我想要使用的所有软件包。
答案 0 :(得分:71)
将library(foo)
放入.Rprofile
文件或设置R_DEFAULT_PACKAGES
:请参阅?Rprofile
...
特别是(因为?Rprofile
很长并且可能令人生畏):
如果您想要一组不同于默认包的包 开始,在'.Rprofile'中插入对'options'的调用 'Rprofile.site'文件。例如,'options(defaultPackages = character())'将在启动时不附加额外的包(仅限于 'base'包)(或将'R_DEFAULT_PACKAGES = NULL'设置为环境 运行R之前的变量。使用'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 Startup [http://stat.ethz.ch/R-manual/R-patched/library/base/html/Startup.html]中描述的其他操作”(与?Rprofile
相同)。它是否看Rprofile.site
是不明确的。
编辑#2 :根据下面的评论,它适用于最新版本的Rstudio。
答案 1 :(得分:15)
有一个名为.Rprofile的文件,它只是每次启动R的新会话时运行的脚本。
您需要做的是向其添加library(package)
。如果您使用的是Unix,它可能在您的主文件夹中作为隐藏文件。
答案 2 :(得分:8)
Quick-R page on customizing R startup包含与Ben和Joao的答案基本相同的信息,但它可能更清楚一点。在您的主文件夹(Windows上的文档)中创建包含所需更改的Rprofile.site
文件的副本,并将其命名为.Rprofile
编辑:我注意到R 3.0.0不再从Documents文件夹中查找,而是在Windows 7下使用用户的主目录(用户名)。但这可能是安装问题(即我之前碰巧安装R“错误”。但是,此答案中链接的Quick-R页面告诉了正确的方法。如果其他人遇到此问题,解决方案是将.Rprofile
复制到用户的主目录。
答案 3 :(得分:1)
快速回答是,您应该按照所有人的建议将R包放在.Rprofile
文件中。
但请注意,R将读取此文件,然后加载R基本软件包。见?Startup:
请注意,当网站和用户个人资料文件仅来源时 基础包已加载,
如果要加载的包增强/覆盖某些R基本功能,则会导致问题。例如,参见tidyverse :: filter:https://github.com/tidyverse/dplyr/issues/1611
到目前为止,我可以看到两种解决方案:
在.First.sys()
文件的第一行使用.Rprofile
:这是通常在读取.Rprofile后运行的命令,该命令会加载getOption("defaultPackages")
中的包。
更新选项 defaultPackages :不要在.Rprofile中使用library()
,而是使用类似的内容。
old <- getOption("defaultPackages")
options(defaultPackages = c(old, "tidyverse"))