.Rprofile和.First之间的差异

.Rprofile和.First之间的差异,r,R,这可能是直截了当的,但我仍然感到沮丧,所以我希望能有一些快速的解释。我已经广泛地寻找了一个合适的答案,但似乎找不到 既然.Rprofile包含了每次打开Rstudio(或通常是R)时需要运行的所有命令,为什么我可以选择在.Rprofile中定义.First()函数?.First()的真正目的是什么 举个例子,假设my.Rprofile有以下几行: .First <- function(){ library(xts) cat("\nWelcome at", date(), "\n")

这可能是直截了当的,但我仍然感到沮丧,所以我希望能有一些快速的解释。我已经广泛地寻找了一个合适的答案,但似乎找不到

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

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

.First <- function(){
  library(xts)
  cat("\nWelcome at", date(), "\n") 
}
我试过这两种方法,结果都一样


谢谢

主要区别在于
.First
在加载默认工作区映像
.Rdata
(如果存在)后执行,因此可以访问该工作区中的对象

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

x <- 2
save.image()

第一次打印
x
的尝试应该失败,但第二次应该成功。

必须注意,这种行为可能会有很大的问题,因为加载工作区时,先前版本的函数可能会删除第一次。应该专门重新加载工作区、删除.first并重新启动会话(保存工作区)
x <- 2
save.image()
y <- try(print(x))
print(y)
.First <- function()
{
    print(x)
    invisible(NULL)
}