.Rprofile和.First之间的区别

时间:2013-07-05 08:54:23

标签: r

这可能很简单,但我仍感到沮丧,所以我很欣赏一些快速解释。我已经广泛寻找合适的答案,但似乎找不到答案。

由于我的.Rprofile包含了每次打开Rstudio(或一般的R)时需要运行的所有命令,为什么我可以选择在.Rprofile中定义.First()函数? .First()的目的是什么?

举个例子,假设我的.Rprofile有以下几行:

.First <- function(){
  library(xts)
  cat("\nWelcome at", date(), "\n") 
}

上面简单地在我的.Rprofile中添加以下内容有多么不同:

library(xts)
cat("\nWelcome at", date(), "\n") 

我尝试了两种方法,但确实有相同的结果。

谢谢!

1 个答案:

答案 0 :(得分:13)

主要区别在于在之后执行<{1}}默认工作区图像.First(如果存在)被加载,因此可以访问该工作区中的对象。

例如,让我们创建一个在启动时自动加载的对象:

.Rdata

退出R,并在默认工作目录中创建一个x <- 2 save.image() ,其中包含:

.RProfile

首次尝试打印y <- try(print(x)) print(y) .First <- function() { print(x) invisible(NULL) } 应该会失败,但第二次尝试会失败。