在 RStudio 中 运行 时,.First 函数的内容似乎未被处理

Content of the .First function does not appear to be processed when running in RStudio

在我的 .Rprofile 中,我定义了以下具有两个目的的 .First 函数:

问题

当运行在终端函数中returns得到想要的结果:

但是,.First 函数生成的内容不会显示:

颜色设置似乎也不适用。 当我将函数作为 .First() 来源并调用时,它可以正常工作。

我想了解 RStudio 启动的不同之处在于它不会在终端中产生与 R 会话 运行 相同的结果并访问相同的结果 .Rprofile?

一方面,函数的整个主体都包含在 if(interactive()){} 中。 interactive 函数将 return TRUE 因此,当您从命令行 运行 您的函数时,代码将 运行 。但是当 .First 在启动时自动为 运行 时,interactive 函数 returns FALSE 和整个函数体被跳过。

与 Rterm 相比,RStudio 启动时会话开始交互的时间似乎有所不同。您可以通过将这样的代码放在 .First:

的开头来测试它
if(interactive()) {
  cat('Interactive is TRUE\n')
} else {
  cat('Interactive is FALSE\n')
}