如果您正在运行Architect/StatET,如何通过编程来判断?

如果您正在运行Architect/StatET,如何通过编程来判断?,r,statet,R,Statet,不同的IDE都有各自的特点,因此了解运行R所使用的IDE有时会很有用 您可以通过测试RStudio环境变量来测试是否正在运行RStudio is_rstudio <- function() { env <- Sys.getenv("RSTUDIO") !is.null(env) && env == "1" } strsplit(Sys.getenv("PATH"), ";")[[1]][1] ## [1] "D:\\Program Files\\Archit

不同的IDE都有各自的特点,因此了解运行R所使用的IDE有时会很有用

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

is_rstudio <- function()
{
  env <- Sys.getenv("RSTUDIO")
  !is.null(env) && env == "1"
}
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或StatET

我发现的最接近的情况是,默认情况下,架构师将Rtools嵌入副本的路径预先添加到
path
环境变量中

is_rstudio <- function()
{
  env <- Sys.getenv("RSTUDIO")
  !is.null(env) && env == "1"
}
strsplit(Sys.getenv("PATH"), ";")[[1]][1]
## [1] "D:\\Program Files\\Architect\\plugins\\eu.openanalytics.architect.rtools.win32.win32_0.9.3.201307232256\\rtools\\bin"

我不清楚如何利用它进行可靠的跨平台测试。你能找到一个更好的测试吗?

我还没有找到任何真正好的测试,但是架构师还有一些调整的迹象

is_architect <- function()
{
  "package:rj" %in% search() &&
  !is.null(device_name <- formals(getOption("device"))$name) &&
  device_name == "rj.gd"
}
首先,它加载一个名为
rj
的包。我们可以使用

"package:rj" %in% search()
其次,它覆盖默认的图形设备(看看
getOption(“设备”)
)。这是一个匿名函数,因此我们不能按名称进行测试,但我认为
name
参数的值应该将它与其他设备(如
windows
png
)区分开来

device_name <- formals(getOption("device"))$name
!is.null(device_name) && device_name == "rj.gd"

device\u name Update:这些检查函数现在在
assertive
的devel版本中,您可以通过
库(devtools)获取这些函数;安装bitbucket(“断言”、“richierocks”)
。检查RStudio的一种下注方式是
。Platform$GUI