38

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

4

9 に答える 9

10

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

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

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

2020 年 5 月または 8 年後に編集 疑問が出てきて、内部からさまざまなことを照会できます。RStudio の端末からの例を次に示します。

$ env | grep -i rstudio | sort
GIO_LAUNCHED_DESKTOP_FILE=/usr/share/applications/rstudio.desktop
PATH=[...redacted...]
RMARKDOWN_MATHJAX_PATH=/usr/lib/rstudio/resources/mathjax-27
RS_RPOSTBACK_PATH=/usr/lib/rstudio/bin/rpostback
RSTUDIO=1
RSTUDIO_CONSOLE_COLOR=256
RSTUDIO_CONSOLE_WIDTH=111
RSTUDIO_PANDOC=/usr/lib/rstudio/bin/pandoc
RSTUDIO_PROGRAM_MODE=desktop
RSTUDIO_PROJ_NAME=chshli
RSTUDIO_SESSION_ID=9C62D3D4
RSTUDIO_SESSION_PORT=13494
RSTUDIO_TERM=2BD6BB88
RSTUDIO_USER_IDENTITY=edd
RSTUDIO_WINUTILS=bin/winutils
$ 

同様に、R セッション内から:

R> se <- Sys.getenv()
R> se[grepl("rstudio",se,ignore.case=TRUE)]
GIO_LAUNCHED_DESKTOP_FILE        /usr/share/applications/rstudio.desktop
PATH                             [...also redacted...]
RMARKDOWN_MATHJAX_PATH           /usr/lib/rstudio/resources/mathjax-27
RS_RPOSTBACK_PATH                /usr/lib/rstudio/bin/rpostback
RSTUDIO_PANDOC                   /usr/lib/rstudio/bin/pandoc
R> 

2021年8月または9年後に編集ここにリストされている別の回答のすべての回答は、まだ人々にとって多すぎる可能性があるため、CRANからパッケージをインストールしてから、RStudio内およびESS /標準で戻ってくるrstudioapiものを介して尋ねることもできますR.rstudioapi::isAvailable()TRUEFALSE

于 2012-09-12T14:04:45.277 に答える
8

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

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

于 2012-09-12T16:50:42.993 に答える
7

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

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

(リストはすべてを網羅しているわけではありません)

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

于 2016-07-28T21:33:01.413 に答える
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 ...
于 2013-07-23T10:15:59.037 に答える
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] FALSE

.libPaths() [1] "/ライブラリ/Frameworks/R.framework/Versions/3.1/Resources/library"

于 2014-06-28T07:58:36.900 に答える