R启动项配置文件
配置文件
R每次启动的时候都会读取两个文件:
-
.Renviron
:主要作用是设置环境变量,告诉R在哪里寻找外部程序,可以自定义用户信息 -
.Rprofile
:每次R启动的时候会运行里面的代码,所以如果里面设置的很多代码,R启动就会变慢
R启动的时候最开始读取.Renviron
文件,接着读取.Rprofile
文件
配置文件在哪里?
实际上每台电脑里存在好几个版本的配置文件,但是每次启动的时候只会读取一个,需要注意以下三个目录:
-
R_HOME
:R安装的文件夹,etc
子目录包含配置文件,可以利用R.home()
获取该目录 -
HOME
:用户的家目录,用户特异性的配置文件,一般是在/home/username
(Linux),c:\User\username
(Windows),可以通过Sys.getenv("HOME")
获取 -
R的工作目录,
getwd()
获取
R读取配置文件(
.Renviron
,.Rprofile
)的优先级是工作目录>HOME
>R_HOME
,因此如果需要创建项目特异的配置文件的话,可以在项目根目录下创建配置文件:
file.edit("~/.Rprofile") # edit .Rprofile in HOME
file.edit(".Rprofile") # edit project specific .Rprofile
我们可以通过以下的脚本来检查是否存在配置文件:
site_path = R.home(component = "home")
fname = file.path(site_path, "etc", "Rprofile.site")
file.exists(fname)
[1] FALSE
file.exists("~/.Rprofile")
[1] TRUE
可以看到R安装的子目录etc
里面不存在.Rprofile.site
,但是我的家目录里面存在。
如何理解配置文件
这里创建一个简单的配置文件,我们使用file.edit("~/.Rprofile")
来打开文件,添加内容并重启R
# A fun welcome message
message("Hi Tom, welcome to R")
# Customise the R prompt that prefixes every command
# (use " " for a blank prompt)
options(prompt = "R-> ")
重启之后显示:
Hi Tom, welcome to R
R->
R默认提示符是>
,这里我们设置成了R->
,所以通过.Rprofile
可以很方便个性化设置启动配置,可以参考
statmethods.net
来定制化启动项。比如我一般会设置代码连接符为" "
,默认的是+
,每次复制代码的时候都带着一堆+
号,修改后就没有了。
options(prompt = "-> ", continue = " ")
对于我们来说最重要的就是在.Rprofile
中设置默认镜像等,不然国内使用默认镜像的话下载包速度感人:
options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
options(repos="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")
.Renviron
文件设置环境变量等,R启动的时候首先搜索全局.Renviron
,接着本地.Renviron
,.Renviron
一个典型应用是设置.R_LIBS
,决定R包安装文件夹:
# Linux
R_LIBS=~/R/library
# Windows
R_LIBS=C:/R/library
可以通过Sys.getenv("R_LIBS_USER")
看包安装的默认文件夹。
需要注意的是千万别胡乱添加,不然出错你都不知道错在哪?
参考:https://csgillespie.github.io/efficientR/set-up.html