使用R启动时运行R脚本

3

我希望在启动 R 时自动运行一个 R 脚本 example.r

我的操作系统是 CentOS,使用的是 R 3.2.3 版本。

我已经搜索过相关信息,但是没有找到合适的解决方案。


2
你可以在你的r安装路径/etc/rprofile.site中添加source("example.R")。 - chinsoon12
你能否请详细解释一下? - Emad
你把R安装在哪里了?去那个文件夹。打开文件夹里面的一个叫做etc的文件夹。在etc文件夹里面有一个叫做rprofile.site的文件。这个文件会在R启动时被调用。 - chinsoon12
我去了 /usr/lib64/R/etc/ 目录,那里的文件有:javaconf、ldpaths、Makeconf、Renviron 和 repositories。 - Emad
如果文件不存在,您可能需要创建该文件。在终端中,假设您具有足够的权限,执行以下命令:echo 'source("/path/to/example.r")' >> /usr/lib64/R/etc/Rprofile.site - nrussell
显示剩余4条评论
1个回答

3
R的启动行为可以通过编辑Rprofile.site来修改,可能需要创建此文件,因为默认的R安装不会自动为您执行此操作。在CentOS 7上,此文件应位于目录/usr/lib64/R/etc/中;或更一般地说,位于$R_HOME/etc/,其中R_HOME可以通过从R会话中运行Sys.getenv("R_HOME")来确定。
例如,如果我将我的Rprofile.site修改如下:
[nathan@xxx] cat /tmp/example.r
x <- 1.5
y <- 2.5
z <- 3.5
t <- Sys.time()

[nathan@xxx] cat /usr/lib64/R/etc/Rprofile.site
options(prompt = "R> ")
options(continue = "  ")
options(stringsAsFactors = FALSE)
options(scipen = 4)

source("/tmp/example.r")

这些变化将在新的 R 会话中反映出来:

enter image description here


尽管在这个例子中似乎不必要,但通常将这样的代码包装在.First <- function() { ... }中以确保它在会话启动时立即运行。
[nathan@xxx] cat /usr/lib64/R/etc/Rprofile.site
options(prompt = "R> ")
options(continue = "  ")
options(stringsAsFactors = FALSE)
options(scipen = 4)

.First <- function() {
    source("/tmp/example.r")
}

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