定位生成默认选项的“.Rprofile”文件

77
在R和RStudio中,我认为我已经几次搞糟了.Rprofile文件,并且当前在启动R或RStudio时加载了旧版本的该文件。有没有一种方法可以快速找到生成默认选项的文件位置?
谢谢
1个回答

103

像 @Gsee 建议的那样,?Startup 包含你所需的一切。请注意,不仅用户配置文件存在,还有一个站点配置文件也可能被更改了。两个文件都可以在多个位置找到。

你可以运行以下命令列出系统中现有的文件,并查看页面上列出的这些文件:

candidates <- c( Sys.getenv("R_PROFILE"),
             file.path(Sys.getenv("R_HOME"), "etc", "Rprofile.site"),
             Sys.getenv("R_PROFILE_USER"),
             file.path(getwd(), ".Rprofile"),
             file.path(Sys.getenv("HOME"), ".Rprofile"))

Filter(file.exists, candidates)

请注意,应该在新的会话中运行它,在您启动 R 后立即运行,这样 getwd() 就会返回启动时的当前目录。还有一个棘手的可能性是,您的配置文件可能会在启动时修改当前目录,在这种情况下,您需要在运行上面的代码之前启动“无配置文件”会话(运行 R --no-site-file --no-init-file)。


13
好的。可能还需要检查 "~/.Rprofile"(或更正式地说,file.path(Sys.getenv("HOME"), ".Rprofile"),因为它也会被搜索。 - Josh O'Brien
非常详细的步骤,谢谢。我猜搜索顺序是1.当前目录。2.R的主目录(或~指向的位置)。3.安装R等地方。 - cloudscomputes
getwd()将在启动时返回当前目录”是什么意思?当前目录是我在单击终端选项卡并键入$ pwd时看到的目录吗? - Wassadamo
你的建议没有起作用,但是@JoshO'Brien的评论有效。你明白吗? - Christoph
@Wassadamo 有点晚了,但 getwd() 函数会返回你当前的工作目录,通常是你启动 R 的目录。假设你在 /micron/ 目录下,在终端中执行二进制文件时输入 R 命令,如果你运行 getwd() ,它将返回 /root/ 目录。 - Imeguras
需要注意的是,candidates 列表不完整(请参见 @JoshO'Brien 的评论),最多只会被引用一个 .Rprofile 文件(请参见 https://support.rstudio.com/hc/articles/360047157094),而且 candidates 的顺序与它们的搜索顺序不匹配(请参见 https://cran.r-project.org/web/packages/startup/vignettes/startup-intro.html)。 - bers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接