r - 在 RStudio 中运行时,.First 函数的内容似乎没有被处理
问题描述
在我.Rprofile
的定义中,我定义了以下.First
具有两个目的的函数:
- 显示可用的库路径
colorout
如果以明亮的主题运行 RStudio,请更改包的设置.First <- function() { if (interactive()) { cat( "\nProcessed RProfile at:", date(), "\n", "Available libraries", "\n", paste(.libPaths(), collapse = "\n "), "\n" ) # Check if running bright theme and adjust colour settings if (assertive::is_rstudio()) { theme_info <- rstudioapi::getThemeInfo() if (!theme_info$dark) { colorout::setOutputColors( normal = 2, negnum = 3, zero = 3, number = 3, date = 3, string = 6, const = 5, false = 5, true = 2, infinite = 5, index = 2, stderror = 4, warn = c(1, 0, 1), error = c(1, 7), verbose = TRUE, zero.limit = NA ) } } } }
问题
但是,该函数将生成的内容.First
不显示:
颜色设置似乎也不适用。当我获取并调用该函数时,.First()
它可以正常工作。
我想了解 RStudio 启动的不同之处在于它不会产生与在终端中运行的 R 会话和访问相同的结果相同的结果.Rprofile
?
解决方案
一方面,函数的整个主体都包裹在if(interactive()){}
. 该interactive
函数将返回TRUE
,因此当您从命令行运行函数时代码将运行。但是当.First
在启动时自动运行时,interactive
函数会返回FALSE
并跳过整个函数体。
看起来,与 Rterm 相比,RStudio 启动时会话开始交互的时间可能不同。您可以通过将这样的代码放在开头来测试它.First
:
if(interactive()) {
cat('Interactive is TRUE\n')
} else {
cat('Interactive is FALSE\n')
}
推荐阅读
- node.js - Node.JS 内存问题,Heroku 错误 R14(超出内存配额)
- ruby-on-rails - Ruby中的赋值是否在逻辑运算符之前?
- uml - UML:如何减少用户帐户系统的用例以避免冗余和不必要的用例?
- jquery - jQuery:选择单选按钮:nth-of-type(整数变量)
- reactjs - Vuex 和 Redux 不变性方法的差异
- css - Angular 中的 Markdown 样式
- powershell - 在Powershell中逐个字符拆分字符串
- python - 如何在 Google 样式的文档字符串中列出多接口函数的 *args?
- python - 在数据框右侧附加列
- laravel-7 - Laravel 认证系统 该页面无法处理请求