这可能很简单,但我仍感到沮丧,所以我很欣赏一些快速解释。我已经广泛寻找合适的答案,但似乎找不到答案。
由于我的.Rprofile包含了每次打开Rstudio(或一般的R)时需要运行的所有命令,为什么我可以选择在.Rprofile中定义.First()函数? .First()的目的是什么?
举个例子,假设我的.Rprofile有以下几行:
.First <- function(){
library(xts)
cat("\nWelcome at", date(), "\n")
}
上面简单地在我的.Rprofile中添加以下内容有多么不同:
library(xts)
cat("\nWelcome at", date(), "\n")
我尝试了两种方法,但确实有相同的结果。
谢谢!
答案 0 :(得分:13)
主要区别在于在之后执行<{1}}默认工作区图像.First
(如果存在)被加载,因此可以访问该工作区中的对象。
例如,让我们创建一个在启动时自动加载的对象:
.Rdata
退出R,并在默认工作目录中创建一个x <- 2
save.image()
,其中包含:
.RProfile
首次尝试打印y <- try(print(x))
print(y)
.First <- function()
{
print(x)
invisible(NULL)
}
应该会失败,但第二次尝试会失败。