- 締切済み
Rのメッセージ抑制
統計言語Rのクレジット表示とか警告とかがうるさくてたまらないので、 perlのように出力指定したもの以外一切表示しなくするようにする方法を教えて下さい。 suppressWarningsとかsuppressMessagesはコマンド毎にかかないといけないので、 そうではなく、グローバルな初期設定として、一括して表示抑制ができる方法があると嬉しいです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ki073
- ベストアンサー率77% (491/634)
回答No.2
No.1です。もしPerlなどのスクリプト言語からRを使いたいのでしたら、それ用のモジュールが有ったりします。 Perlを使わないので、詳しいことは分かりませんが、 http://www.okada.jp.org/RWiki/?Perl%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%A4%AB%A4%E9R%A4%F2%B5%AF%C6%B0%A4%B9%A4%EB が参考になるかも知れません。 RubyからRをよく使っているのですが、その時はrsrubyを使用しています。 この場合は、Rからの不必要なメッセージは完全に押さえられます。
- ki073
- ベストアンサー率77% (491/634)
回答No.1
OSを書いていないので一般的な回答を 以下を参考にしてください。 http://papaya.ab.a.u-tokyo.ac.jp/groups/biomet/wiki/026b4/R.html -qでも出力が抑制されます。 OSXのpkgからインストールした場合はそのままではうまく動きません。(どうもGUIと一緒になったプログラムのようです) MacPortsなどで、Rをインストールすれば正常に動きます。
お礼
ありがとうございました。
補足
結局以下のようなことをして無理矢理解決しました。 ---- #!/usr/bin/perl $ar=@ARGV[0]; if($ar eq ""){exit(1);} `/usr/bin/R CMD BATCH -q --no-save --slave --vanilla $ar $ar.tmp`; $cattmp=`/bin/cat $ar.tmp`; @cat=split(/\n/,$cattmp); foreach $i (@cat){ if($i=~/During startup/){next;} if($i=~/Setting LC_CTYPE failed/){next;} if($i=~/proc/){last}; print "$i\n"; } `/bin/rm $ar.tmp`; ----