web-dev-qa-db-ja.com

RがRStudioで実行されているかどうかを確認する

RがRStudioから実行されているかどうかをテストする方法を探しています。なんらかの理由で、昨日ではなく今日ではGoogleで答えを見つけることができましたが、特定のシステム変数が設定されているかどうかをテストする必要があったと思います。

30
Sacha Epskamp

「RStudio内で実行」することはできません。 RStudioは単にRをラップするIDEレイヤーです;結局のところ、RStudioを操作するために$ PATHに必要な通常のR実行可能ファイルを起動するだけです。

プロキシとして、およびR Studioとして 'manipulate'パッケージのavailable.packages()をテストするか、またはより短いバージョンとして、RStudioが.libPath()コンテンツにそれ自体を追加したかどうかを確認できます。

R> any(grepl("RStudio", .libPaths()))
[1] TRUE
R> 
R> 
10

これは_?rstudio_からです:

_# Test whether running under RStudio 
isRStudio <- Sys.getenv("RSTUDIO") == "1"
_

rstudioapi::isAvailable()もありますが、RStudioが正しく機能するためにrstudioapiパッケージを実際に必要としないため、これをチェックすることはそれほど信頼できません。

39
krlmlr

.Platform$GUIオプション"RStudio"

is.rstudio = function(){
  .Platform$GUI == "RStudio"
}

見る:

http://thecoatlessprofessor.com/programming/detecting-if-r-is-in-rstudio-and-changing-rstudios-default-graphing-device/

11
coatless

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)
}

そして多分それを使用します。

6
Spacedman

現在、RStudioが実行されているかどうかを確認する機能を含むパッケージがいくつかあります。

rstudioapi::isAvailable()
assertive::is_rstudio()

(リストは完全ではありません)

assertiveおよびassertive.reflectionsパッケージには、他のIDE、RStudioのデスクトップ/サーバーバージョン、およびさまざまなRリリース(アルファ、ベータ、開発、リリース、パッチ適用など)をチェックする追加機能が含まれています。

3
Uwe

ニースの推測の数を増やすために、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 ...
3
Dieter Menne

次の作品を見つけました

checkRstudio <- function () {
  return ("tools:rstudio" %in% search())
}

私自身、Rは初めての方ですが、Rstudioを実行するには、必ず「tools:rstudio」パッケージがロードされていると思います。

2
user3795816

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"

0
user3785496

きちんとしたソリューションが startup パッケージからis_rstudio_console 関数:

startup:::is_rstudio_console()
[1] TRUE
0
Konrad