本文翻译自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)获取更多细节。