RがRStudioから実行されているかどうかをテストする方法を探しています。なんらかの理由で、昨日ではなく今日ではGoogleで答えを見つけることができましたが、特定のシステム変数が設定されているかどうかをテストする必要があったと思います。
「RStudio内で実行」することはできません。 RStudioは単にRをラップするIDEレイヤーです;結局のところ、RStudioを操作するために$ PATHに必要な通常のR実行可能ファイルを起動するだけです。
プロキシとして、およびR Studioとして 'manipulate'パッケージのavailable.packages()をテストするか、またはより短いバージョンとして、RStudioが.libPath()
コンテンツにそれ自体を追加したかどうかを確認できます。
R> any(grepl("RStudio", .libPaths()))
[1] TRUE
R>
R>
これは_?rstudio
_からです:
_# Test whether running under RStudio
isRStudio <- Sys.getenv("RSTUDIO") == "1"
_
rstudioapi::isAvailable()
もありますが、RStudioが正しく機能するためにrstudioapi
パッケージを実際に必要としないため、これをチェックすることはそれほど信頼できません。
.Platform$GUI
オプション"RStudio"
is.rstudio = function(){
.Platform$GUI == "RStudio"
}
見る:
RStudioを起動すると、検索パスの位置2にtools: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)
}
そして多分それを使用します。
現在、RStudioが実行されているかどうかを確認する機能を含むパッケージがいくつかあります。
rstudioapi::isAvailable()
assertive::is_rstudio()
(リストは完全ではありません)
assertive
およびassertive.reflections
パッケージには、他のIDE、RStudioのデスクトップ/サーバーバージョン、およびさまざまなR
リリース(アルファ、ベータ、開発、リリース、パッチ適用など)をチェックする追加機能が含まれています。
ニースの推測の数を増やすために、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 ...
次の作品を見つけました
checkRstudio <- function () {
return ("tools:rstudio" %in% search())
}
私自身、Rは初めての方ですが、Rstudioを実行するには、必ず「tools:rstudio」パッケージがロードされていると思います。
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] FALSE
.libPaths()[1] "/ライブラリ/Frameworks/R.framework/Versions/3.1/Resources/library"
きちんとしたソリューションが startup
パッケージからis_rstudio_console
関数:
startup:::is_rstudio_console()
[1] TRUE