首页 > 解决方案 > 在 RStudio 中运行时,.First 函数的内容似乎没有被处理

问题描述

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

问题

在终端中运行时,该函数返回所需的结果: 在此处输入图像描述

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

在此处输入图像描述

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

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

标签: rrstudiorprofile

解决方案


一方面,函数的整个主体都包裹在if(interactive()){}. 该interactive函数将返回TRUE,因此当您从命令行运行函数时代码将运行。但是当.First在启动时自动运行时,interactive函数会返回FALSE并跳过整个函数体。

看起来,与 Rterm 相比,RStudio 启动时会话开始交互的时间可能不同。您可以通过将这样的代码放在开头来测试它.First

if(interactive()) {
  cat('Interactive is TRUE\n')
} else {
  cat('Interactive is FALSE\n')
}

推荐阅读