0

Rscript を使用して、コマンド ラインからいくつかの R スクリプトを実行しようとしています。Mac と Linux の両方で試しましたが、両方で次の問題が発生しました。以下のテスト スクリプトは、R に入力するだけで問題なく動作します。

is

スクリプトは関数「is」を出力するだけです。ただし、次のようなファイルに入れると:

#!/usr/bin/Rscript
is

「./test.R」または「Rscript test.R」を使用して実行すると、次のエラーが発生します。

Error: object 'is' not found
Execution halted

「is」関数は、R のように Rscript で定義されていないようです。スクリプトを機能させるにはどうすればよいですか?

:明らかに、私の目標は「is」関数を出力することだけではありません。gamlss を使用しようとしていますが、"is" 関数が gamlss によって呼び出され、このエラーが発生します。

編集:Rでは、 sessionInfo() は次を提供します:

R version 3.0.2 (2013-09-25)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.0.2

Rscript から、次のようになります。

R version 3.0.2 (2013-09-25)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  base 
4

1 に答える 1

2

解決策は、"methods" パッケージ ("is" 関数を含む) をロードすることです。Rではデフォルトでロードされていると思いますが、何らかの理由でRscriptではロードされていません。スクリプトを次のように変更すると:

#!/usr/bin/Rscript
library(methods)
is

その後、コマンドラインから正常に動作します。

于 2014-07-09T17:54:48.647 に答える