設定 R(例えば、適応のためのオペレーティングシステム)の検出。R プロファイル ファイル)




rstudio 環境変数 (4)

Sys.info().Platform$OS.typeは、どのOSが動作しているかによって異なる結果を出すので、私はもう少し調べて、 https://www.r-bloggers.com/identifying-the-os-from-r/ .Platform$OS.type次の関数を見つけましたhttps://www.r-bloggers.com/identifying-the-os-from-r/

get_os <- function(){
  sysinf <- Sys.info()
  if (!is.null(sysinf)){
    os <- sysinf['sysname']
    if (os == 'Darwin')
      os <- "osx"
  } else { ## mystery machine
    os <- .Platform$OS.type
    if (grepl("^darwin", R.version$os))
      os <- "osx"
    if (grepl("linux-gnu", R.version$os))
      os <- "linux"
  }
  tolower(os)
}

.Rprofileに物を置くなど、Rのオペレーティングシステムを自動的に検出する方法が不思議でした。


> Sys.info()
                                      sysname 
                                      "Linux" 
                                      release 
                          "2.6.32-26-generic" 
                                      version 
"#48-Ubuntu SMP Wed Nov 24 09:00:03 UTC 2010" 

switch(Sys.info()[['sysname']],
Windows= {print("I'm a Windows PC.")},
Linux  = {print("I'm a penguin.")},
Darwin = {print("I'm a Mac.")})

これを整理するのにはそれほど時間がかかりませんでしたので、他の人にも利益があると思いました。

よろしく、

  • ブライアン

ヘルプページにすべてのRプラットフォームで実装されていないとSys.info()を使用しているかどうかはSys.info()ません。 おそらく.Platform代わりに使用しますか? ?.Platformには多くの有益な情報があります。

'.Platform'は、Rが構築されたプラットフォームの詳細を含むリストです。 これは、OS移植可能なRコードを書く手段を提供する。

また、Rに含まれるパッケージは.Platformよりも頻繁に使用するようSys.info

josh: /c/R/R-2.12.0-src/src/library
> grep ".Platform" */R/* | wc -l
144
josh: /c/R/R-2.12.0-src/src/library
> grep ".Platform\$OS.type" */R/* | wc -l
99
josh: /c/R/R-2.12.0-src/src/library
> grep "Sys.info" */R/* | wc -l
4




operating-system