本文翻译自R in Action的附录B,如果对该书感兴趣,请自行购买或去图书馆阅读。
R导论的10.8也是讲定制环境的。
程序员最喜欢做的事之一是定制启动环境,好让程序按照他们喜欢方式工作。定制启动环境可以让你设置R的选项、指定工作目录、加载常用的包、加载用户自己写的函数、设置CRAN下载网址以及其它操作。
你可以通过编辑位置初始化文件(Rprofile.site)或者目录初始化文件(.Rprofile)来定制R环境。这两个是纯文本文件,包含启动时要执行的R代码。
在启动的时候,R会从R_HOME/etc这个目录寻找Rprofile.site来调用,其中 R_HOME 是环境变量。然后R会在当前工作目录寻找.Rprofile文件来调用。如果R没有找到这个文件,就会在用户的主目录寻找。你可以用Sys.getenv("R_HOME")、Sys.getenv("HOME")和getwd()分别查看R_HOME、HOME以及当前工作目录。
你可以在这些文件里放两个特殊的函数,.First()函数在启动R会话的时候执行,.Last()函数在结束会话的时候执行。Rprofile.site文件的例子如下:
# 设置常用选项
options(papersize="a4")
options(editor="notepad")
options(pager="internal")
options(tab.width = 2)
options(width = 130)
options(graphics.record=TRUE)
options(show.signif.stars=FALSE)
# 设置R交互提示信息
options(prompt="> ")
options(continue="+ ")
.libPaths("C:/my_R_library") # 设置包的本地库(library)路径
# 设置CRAN镜像默认地址
local({r <- getOption("repos")
r["CRAN"] <- "http://cran.case.edu/"
options(repos=r)})
# 启动函数
.First <- function(){
library(lattice)
library(Hmisc)
source("C:/mydir/myfunctions.R")
cat("\nWelcome at", date(), "\n")
}
# 会话结束函数
.Last <- function(){
cat("\nGoodbye at ", date(), "\n")
}关于这个文件,你需要注意以下几点:
- 设置.libPaths值允许你在R的安装目录之外创建包的本地库。这再升级时很有用,可以保留之前安装的包。
- 设置CRAN镜像网站可以让你在使用
install.packages()命令时不用每次都选择。 .First()函数是一个很好的地方,来加载你常用的包,运行常用的用户编写的函数。.Last()函数一个很好的地方做清理活动,包括保存命令历史、程序输出和数据文件。
还有其他定制启动环境的方式,包括使用命令行选项和环境变量。查看help(Startup)以及R导论的附录B(http://cran.r-project.org/doc/manuals/R-intro.pdf,中文版地址http://cran.r-project.org/doc/contrib/Ding-R-intro_cn.pdf)获取更多细节。

