我正在寻找一种测试R是否从RStudio运行的方法。出于某种原因,我可以在谷歌昨天找到答案但不是今天,但我认为这与测试是否设置了某个系统变量有关。
答案 0 :(得分:37)
这来自?rstudio
:
# Test whether running under RStudio
isRStudio <- Sys.getenv("RSTUDIO") == "1"
还有rstudioapi::isAvailable()
,但检查这一点并不可靠,因为RStudio似乎并不需要rstudioapi
包正常工作。
答案 1 :(得分:9)
检查.Platform$GUI
"RStudio"
选项
is.rstudio = function(){
.Platform$GUI == "RStudio"
}
请参阅:
答案 2 :(得分:7)
没有“在RStudio内部运行”。 RStudio只是一个环绕R的IDE层;在一天结束时,它只是启动您需要在$ PATH上运行RStudio的正常R可执行文件。
作为代理,作为R Studio您可以测试'manipulate'包的available.packages(),或者作为更短的版本,看看RStudio是否将自己添加到.libPath()
内容:
R> any(grepl("RStudio", .libPaths()))
[1] TRUE
R>
R>
答案 3 :(得分:6)
当我启动RStudio时,它似乎有工具:搜索路径上位置2的rstudio。这有一个函数“RStudio.version”,它没有文档但似乎返回RStudio版本字符串:
> RStudio.version()
[1] "0.96.316"
所以你可以定义:
is.RStudio <- function(){
if(!exists("RStudio.version"))return(FALSE)
if(!is.function(RStudio.version))return(FALSE)
return(TRUE)
}
也许可以使用它。
答案 4 :(得分:3)
为了增加猜测的数量,这里有一条来自2011年(冰河世纪)的消息
http://support.rstudio.org/help/discussions/problems/413-location-of-installed-packages
if (Sys.getenv("RSTUDIO_USER_IDENTITY")!= ""){
.libPaths(.Library) # Avoid additional libraries } else { # not rstudio ...
答案 5 :(得分:2)
我找到了以下适用于我的作品
checkRstudio <- function () {
return ("tools:rstudio" %in% search())
}
我对R本人有点新意,但我相信Rstudio必然会加载 包&#34;工具:rstudio&#34;为了跑步。
答案 6 :(得分:2)
截至今天,有一些软件包包含检查RStudio是否正在运行的函数:
rstudioapi::isAvailable()
assertive::is_rstudio()
(列表不详尽)
assertive
和assertive.reflections
软件包确实包含其他功能,以检查其他IDE,桌面/服务器版本的RStudio以及各种R
版本(例如,alpha, beta,devel,release,patched等。)
答案 7 :(得分:0)
在Mac上只有Sys.getenv的答案有效
平台x86_64-apple-darwin10.8.0
version.string R版本3.1.0(2014-04-10)
Sys.getenv( “RSTUDIO”)== “1” [1] TRUE
RStudio.version() 错误:找不到函数“RStudio.version”
any(grepl(“RStudio”,。libPaths())) [1]错误
.libPaths() [1]“/ Library/Frameworks/R.framework/Versions/3.1/Resources/library”
答案 8 :(得分:0)
现在可以通过is_rstudio_console
函数通过startup:::is_rstudio_console()
[1] TRUE
包提供整洁的解决方案:
<!DOCTYPE html>
<html lang="eng">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="{{url_for('static', filename = 'css/bootstrap.min.css')}}" rel="stylesheet">
<link rel="shortcut icon" href="{{url_for('static', filename = 'myicon.ico' )}}">
<script type=text/javascript src="{{url_for('static', filename='js/jquery.min.js') }}"></script>
<script type="text/javascript" src="{{url_for('static', filename = 'js/bootstrap.min.js')}}"></script>