首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.Rprofile与.First的区别

.Rprofile与.First的区别
EN

Stack Overflow用户
提问于 2013-07-05 16:54:23
回答 1查看 453关注 0票数 9

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

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

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

代码语言:javascript
复制
.First <- function(){
  library(xts)
  cat("\nWelcome at", date(), "\n") 
}

上面的代码与简单地在我的.Rprofile中添加以下代码有何不同:

代码语言:javascript
复制
library(xts)
cat("\nWelcome at", date(), "\n") 

我都试过了,它们确实有相同的结果。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-05 18:06:12

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

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

代码语言:javascript
复制
x <- 2
save.image()

退出R,并在默认工作目录中创建一个.RProfile,其中包含:

代码语言:javascript
复制
y <- try(print(x))
print(y)
.First <- function()
{
    print(x)
    invisible(NULL)
}

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

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17484869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档