找回密码
 立即注册
查看: 3168|回复: 2

【分享帖】在Mac系统中,让R一打开就自动加载函数(.Rprofile)的解决办法

[复制链接]
发表于 2015-9-29 18:41:06 | 显示全部楼层 |阅读模式
本帖最后由 Silver_ 于 2015-9-29 18:41 编辑

首先,我是个昨天才接触R语言的菜鸟,如果大神们有更好的办法求推荐!{:soso_e163:}

经过这两天的接触,我觉得R语言的使用真是太方便了!
但是唯一有一点让人不爽的就是,每一次重新打开R的时候就需要一个一个去点击加载需要的R包。
我就想,有没有办法可以让R一打开就自动加载这些R包呢?



——————

网上查到的基本都是Win/UBUNTU系统的使用办法:


#以下为引用自:troy杨
http://blog.sina.com.cn/s/blog_50ccfc410101eigd.html 的发言

windows环境下,R启动时会到R_Home\etc目录下找Rprofile.site文件,其中“R_Home”指的是R安装目录,例如c:\R。可以用notepad等文本编辑器打开c:\R\etc\Rprofile.site,进行修改

# Things you might want to change
# 下面是常规设置,包括,默认编辑器、制表符宽度等等
# options(papersize="a4")
# options(tab.width=2)
# options(editor="notepad")
# options(pager="internal")
# set the default help type
# options(help_type="text")
  options(help_type="html")
# set a site library
# 自定义库路径,便于备份
# .Library.site <- file.path(chartr("\\", "/", R.home()), "site-library")
# set a CRAN mirror
# 设置CRAN镜像,选一个最近源,这样安装和更新包时就不用手动选取CRAN镜像了
local({r <- getOption("repos")
       r["CRAN"] <- "http://ftp.ctex.org/mirrors/CRAN/"
       options(repos=r)})
# Give a fortune cookie, but only to interactive sessions
# (This would need the fortunes package to be installed.)
#  if (interactive())
#    fortunes::fortune()
.First <- function(){
# 设置R启动时加载的包
library(TSA)
library(MASS)
# 启动时交互,可自定义
cat("\nWelcome at",date(),"\n")
}
# 退出时交互
.Last <- function(){
cat("\nGoodnye at",date(),"\n")
}

.First()函数中除了加载常用package之外,还可以加载保存自己编写的常用函数的源代码文件
.Last()函数可以执行推出时清理工作,如保存命令历史记录、保存数据输出和数据文件等等

#以下为引用自:dengkewen
http://bbs.pinggu.org/thread-1390361-1-1.html 的发言

UBUNTU系统中,/etc/R/Rprofile-site的确存在,但修改它是没有意义的,应该把该文件拷备到/usr/local/lib/R/etc/目录下,再按上述方法修改,则成功!这问题困扰了我两天,终于完美解决,我的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("/usr/local/lib/R/site-library") # 设置包的本地库(library)路径

# 添加knitr以及dprep两个我很常用的包:
local({old<-getOption("defaultPackages")
     options(defaultPackages=c(old,"knitr","dprep"))})

# 启动函数
#.First <- function(){
#library(knitr)
#library(dprep)
#source("C:/mydir/myfunctions.R")
#cat("\nWelcome at", date(), "\n")
#}

# 会话结束函数
.Last <- function(){
cat("\nGoodbye at ", date(), "\n")
}



而在Mac方面,我也看到了一种解决办法——


#以下为引用自:pinkcoala
http://www.douban.com/note/498175361/ 的发言

今天在用R软件的时候,想查一下mac系统下,R自动加载函数的问题。经过略曲折的学习,解决方法如下,其实还蛮简单的。
我的电脑系统是OS X Yosemite 10.10.3,R version 3.1.2 ,安装的R没有.Rprofile文件,所以我自己新建了该隐藏文件,文件需放在/Users/YOUR_NAME/.Rprofile。
在.Rprofile文件里可以加载软件包、写入函数。这些包和函数都会随R的启动自动运行。PS函数的最后一个}后需要空一行。




——————
于是,结合了各方的知识,我这边也整理出了解决Mac系统的R软件自动加载R包的方案:


1.利用文档编辑器,在/Users/YOUR_NAME/ 建立.Rprofile文件
【推荐使用 Sublime Text,个人觉得挺不错的】

2.如果只是需要自动加载R包的话,那么只需要在.Rprofile文件中输入这部分代码就可以解决:

  1. .First <- function(){
  2. # 设置R启动时加载的包
  3. library(MASS)
  4. library(base)
  5. }
复制代码



经过验证,这些包确实会随R的启动自动运行。(我用的是Rstudio,运行没有问题)
需要注意的是:函数的最后一个""}"后需要空一行。



以上就是如何在Mac系统中,在每次R软件启动的时候,自动加载所需R包的方法了。
是不是很简单呢?
反正我自己是觉得超级简单就是了!XD



【新人拜帖,希望大家喜欢,以及多多指教】

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-22 20:03 , Processed in 0.024172 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表