r - 如果您正在运行 Architect/StatET,您如何以编程方式判断?

标签 r statet

不同的 IDE 都有其怪癖,因此能够知道您正在使用什么 IDE 来运行 R 有时会很有用。

您可以通过测试 RSTUDIO 来测试您是否正在运行 RStudio。环境变量。

is_rstudio <- function()
{
  env <- Sys.getenv("RSTUDIO")
  !is.null(env) && env == "1"
}

(或者,正如哈德利所评论的, gui <- .Platform$GUI; !is.null(gui) && gui == "RStudio" 。)

您可以通过检查名为 Revo.version 的列表来测试 Revolution R。在基础环境中。
is_revo_r <- function()
{
  exists("Revo.version", "package:base", inherits = FALSE) && is.list(Revo.version)
}

是否有类似的检查可以查看您是在运行 Architect 还是 StatET?

我发现的最接近的事情是,默认情况下 Architect 将其嵌入的 Rtools 副本的路径添加到 PATH环境变量。
strsplit(Sys.getenv("PATH"), ";")[[1]][1]
## [1] "D:\\Program Files\\Architect\\plugins\\eu.openanalytics.architect.rtools.win32.win32_0.9.3.201307232256\\rtools\\bin"

我不清楚如何从中进行可靠的跨平台测试。你能找到更好的测试吗?

最佳答案

我还没有找到任何非常好的测试,但是有更多的迹象表明 Architect 进行了调整。

首先,它加载一个名为 rj 的包。 .我们可以使用

"package:rj" %in% search()

其次,它会覆盖默认的图形设备(查看 getOption("device") )。这是一个匿名函数,所以我们不能按名称测试,但我认为name的值参数应该将它与其他设备区分开来,例如 windowspng .
device_name <- formals(getOption("device"))$name
!is.null(device_name) && device_name == "rj.gd"

结合这两个测试来检查您是否正在运行 Architect 应该相当准确。
is_architect <- function()
{
  "package:rj" %in% search() &&
  !is.null(device_name <- formals(getOption("device"))$name) &&
  device_name == "rj.gd"
}

关于r - 如果您正在运行 Architect/StatET,您如何以编程方式判断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27225507/

相关文章:

eclipse - Eclipse 中是否有很好的 "find all"函数?

r - 使用 Rmd pdf 的自定义模板而不更改当前设置

r - 如何解释 H2O 的时间数据类型?

r - 如何在R中提取文本文件中间的数字

r - 使用 R 合并 Loop 中的表

c++ - 在 Eclipse/StatET 中编写包含 C++ 代码的 R 包

java - 错误 : unable to load installed packages just now

r - 使用complete()时添加不需要的值

eclipse - eclipse中statet找不到rj包