シュンカの日記

基本的に書きたいことを書いていくスタイル。

windows環境でのRStan実行時エラー(Error in system(cmd, intern = !verbose) : 'C:/Program' not found)の対処法

【スポンサーリンク】

Linux(Ubuntu)環境で、Rを利用したStanの実行について説明しました。

www.wanna-continue.com


同じことを「Windows7/R 3.3.2」環境で実行しようとした結果、実行時エラーが生じました。


具体的には、Rにおいて以下のようなコードでStanを実行すると、

library(rstan)

source("data611.R")
scr<-"model611.stan"
data <-list(N=N, x=x)

par<-c("mu","sigma")

war<-1000               #バーンイン期間
ite<-11000              #サンプル数
see<-12345              #シード
dig<-3                  #有効数字
cha<-1                  #チェーンの数

fit <- stan(file = scr, data = data, iter=ite, seed=see, warmup=war,
	      pars=par,chains=cha)

以下のような実行時エラーが生じました。

Error in system(cmd, intern = !verbose) : 'C:/Program' not found


で、エラーの原因ですが、Rの実行ファイルが格納されているディレクトリのパスに空白が含まれていることで生じたようです。

Rをインストールする際、特に指定をしないとRフォルダが「C:\Program Files」の直下に作成されると思うんですが、
この「Program Files」に含まれている半角スペースのせいで、Stanコード(C++)のどこかの関数でパスが正しく読み込まれずにエラーが生じたようです。
f:id:nukano0522:20161231222210p:plain


そこで、「C:\Program Files」直下のRフォルダを「C:」直下に移動したところ、正常にStanが実行されました。
f:id:nukano0522:20161231222301p:plain


Rに限らず、プログラミング言語関係のパッケージをインストールする場所は、特別な事情が無い限りはC直下を意識したほうがいいかもしれません。
※PythonなんかもCドライブ直下へのインストールが推奨されています。


以上です。