2016-11-01 4 views
0

を設定した後runjagsが突然(バージョン2.0.3-2に更新後の)エラーを発行し、トラブルぎざぎざのバイナリを見つけることているようだ:runjagsトラブルぎざぎざを見つける - エラー「が見つかりません 『』」でもjagspath

[1] "Error in system(\"where jags\", intern = TRUE) : 'where' not found\n" 
attr(,"class") 
[1] "try-error" 
attr(,"condition") 
<simpleError in system("where jags", intern = TRUE): 'where' not found 

私は私のRprofileに次の行を置くことによって、これを固定:

.runjags.options <- list(jagspath = "c:/Program Files/JAGS/JAGS-4.2.0/i386/bin/jags-terminal.exe") 

これはかなりの修正問題を(それが理想的ではないが - runjagsの以前のバージョンが自動的にバイナリを見つけることができます)。 Rgui(Windows XPの場合)は、それに関連付けられている.Rdataファイルを開くことにより、起動したとき

はしかし、それは動作を停止します:

> .runjags.options # it was set in the Rprofile 
$jagspath 
[1] "c:/Program Files/JAGS/JAGS-4.2.0/i386/bin/jags-terminal.exe" 

> require(runjags) 
Loading required package: runjags 
Warning message: 
package ‘runjags’ was built under R version 3.1.3 
> runjags.getOption("jagspath") 
[1] "Error in system(\"where jags\", intern = TRUE) : 'where' not found\n" 
attr(,"class") 
[1] "try-error" 
attr(,"condition") 
<simpleError in system("where jags", intern = TRUE): 'where' not found 

は、これはバグですか?これを修正するには?

私は現在、を私のソースのrequire(runjags)の後に呼び出していますが、これはできるだけ避けたいと思います。

答えて

1

問題はfindjags()関数にあります。具体的には、2003年にWindowsに追加されたため、Windows XPには存在しない 'where'システムコマンドの使用です。以前のバージョンのWindowsを検出してJAGSを見つける別の方法に戻るように設計されたfindjags()にはいくつかのコードがありますが、これはバージョン1.x以降は変更されていません。なぜこれが '突然'動作を停止。おそらくあなたのシステムに変更があったか、system()コマンドがRで動作する方法の変更がありました。このコードを変更して、エラーが発生していると思われる場所を回避しましたが、私はアクセスできませんWindows XP(私はむしろあなたがするのは驚いている!)だから私はそれをテストすることはできません。しかし、私はそれが何らかの害を及ぼすとは思わないので、最近のバージョンのWindowsでテストした後、次回のリリースでそれを含めることにします。

.Rdataファイルを開いたときに.runjags.optionsが見つからない理由はよく分かりませんが、.Rdataファイルを開くとオブジェクトを設定する前にライブラリが読み込まれる可能性があります。私はこれを調べますが、私は何かできることではないようです。 runjags.options()を使用する代わりに、run.jagsなどの呼び出しでjags引数を設定することもできます。

+0

ありがとうございました。 * "しかし、.Rdataファイルを開くとオブジェクトを設定する前にライブラリをロードする可能性があります" * - 私はそうは思わない - 私の質問(.Rdataファイルのオープン)でコンソールセッションを見ると、ライブラリは 'require(runjags)' *によってロードされています。* '.runjags.options'が正しく設定されていることを確認しました。だからそれはrunjagsライブラリのどこかにあるはずですか? – TMS

+0

私はそうは思わない - .Rdataファイルを開くときに記述したエラーを再現することはできず、Rがどのように開かれたかを区別するために実際にはランナーズには何もない。コードは次のとおりです:setopts < - mget( '。runjags.options'、envir = .GlobalEnv、ifnotfound = list(.runjags.options = NULL))[[1]]そしてis.null(setopts)のテストlook in zzz.R) - .Rdataファイルを開いた後、このコードはあなたのために働きますか(つまり、setoptsはNULLではありません)?それが助けにならない場合は、このエラーをどのように生成しているか再現可能な例をmに送ってください:私の連絡先はCRAN/inside packageDescription( 'runjags')にあります。 –

関連する問題