2

R のインストールでサポートされているアーキテクチャをどのように判断しますか? 標準の Windows インストールでは、R_HOME/bin/*/R.exe の存在を探すことができます。* はアーキテクチャ (通常は i386 または x64) です。CRAN からの標準の Mac インストールでは、サブディレクトリはありません。

次のようなものを使用して、R に既定のアーキテクチャを問い合わせることができます。

$ R --silent -e "sessionInfo()[[1]][[2]]"
> sessionInfo()[[1]][[2]]
[1] "x86_64"

しかし、サブアーキテクチャがインストールされているかどうかを mac/linux で知るにはどうすればよいですか。

4

2 に答える 2

3

R.version、、、およびはR.Version()、実行中の R のバージョンに関する詳細情報を提供します。R.version.stringversion

質問のより良い理解に基づいて更新します。これは完全な解決策ではありませんが、次のコマンドを組み合わせることでかなり解決できるようです。

# get all the installed architectures
arch <- basename(list.dirs(R.home('bin'), recursive=FALSE))
# handle different operating systems
if(.Platform$OS.type == "unix") {
  arch <- gsub("exec","",arch)
  if(arch == "")
    arch <- R.version$arch
} else {  # Windows
  # any special handling
}

ソースから R をビルドし、さまざまなアーキテクチャをさまざまな場所にインストールした場合、これは機能しないことに注意してください。詳細については、R のインストールと管理マニュアルの2.6 サブアーキテクチャを参照してください。

于 2013-07-07T17:15:42.983 に答える
0

Sys.info()あなたを使用すると、システムに関する多くの情報が得られます。ここで役立つかもしれません

Sys.info()["machine"]
 machine 
"x86_64" 

編集

すべてのアーキテクチャを可能にする 1 つの回避策は、Rstudio ミラーからログ ファイルをダウンロードすることです。これは完全ではありませんが、必要なものを適切に見積もっています。

start <- as.Date('2012-10-01')
today <- as.Date('2013-07-01')

all_days <- seq(start, today, by = 'day')
year <- as.POSIXlt(all_days)$year + 1900
urls <- paste0('http://cran-logs.rstudio.com/', year, '/', all_days, '.csv.gz')
files <- file.path("/tmp", basename(urls))

list_data <- lapply(files, read.csv, stringsAsFactors = FALSE)
data <- do.call(rbind, list_data)

str(data)
## 'data.frame':    10694506 obs. of  10 variables:
##  $ date     : chr  "2012-10-01" "2012-10-01" "2012-10-01" "2012-10-01" ...
##  $ time     : chr  "00:30:13" "00:30:15" "02:30:16" "02:30:16" ...
##  $ size     : int  35165 212967 167199 21164 11046 42294 435407 326143 119459 868695 ...
##  $ r_version: chr  "2.15.1" "2.15.1" "2.15.1" "2.15.1" ...
##  $ r_arch   : chr  "i686" "i686" "x86_64" "x86_64" ...
##  $ r_os     : chr  "linux-gnu" "linux-gnu" "linux-gnu" "linux-gnu" ...
##  $ package  : chr  "quadprog" "lavaan" "formatR" "stringr" ...
##  $ version  : chr  "1.5-4" "0.5-9" "0.6" "0.6.1" ...
##  $ country  : chr  "AU" "AU" "US" "US" ...
##  $ ip_id    : int  1 1 2 2 2 2 2 1 1 3 ...

unique(data[["r_arch"]])
##  [1] "i686"      "x86_64"    NA          "i386"      "i486"     
##  [6] "i586"      "armv7l"    "amd64"     "000000"    "powerpc64"
## [11] "armv6l"    "sparc"     "powerpc"   "arm"       "armv5tel"
于 2013-07-07T17:07:12.470 に答える