2016-07-24 12 views
0

Rコードをバッチモードで実行しているときに、Rコードからのメッセージ/エラー/ログが.Routファイルの代わりにコンソール画面に表示される必要があります。Rバッチモード:コンソール画面でRの出力/エラーを見る方法は?

私はすべての投稿(下にコピーされたリンク)をスタックオーバーフローから試しました。誰も私に希望の出力を見せていません。

  • unable-to-run-r-script-through-bat-files-in-windows-server
  • running-r-in-batch-mode-print-to-screen?
    1. r-cmd-batch-output-in-terminal

    バッチコード:私は同様にtty0のと試みました。

    "C:\Program Files\R\R-3.2.2\bin\R.exe" CMD BATCH --slave "Test.R" /dev/tty 
    

    Test.Rコード

    print(1:10) 
    

    いくつかは、コンソールに出力を表示するためにコードを書くの正しい方法を示すに私を助けることができたscreen.And私が働いている場合、それは非常に参考になりますWindows環境で。

    ご協力いただきありがとうございます。

    +0

    バッチモードでRを実行するのは、何が起きているのかを知る人がいないのですか?バッチモードは、自動分析のためのものです。出力を見たい場合は、ログファイルを調べるか、Rを対話形式で実行します。 –

    +0

    @RichieCottonバッチでRコードを実行する私の目的は、第三者がR/Rstudioを開かないようにすることです。そして、中間結果を見る必要があるので、その出力をコンソール画面に表示します。 – PPC

    +2

    私はあなたがRスクリプトではなくRであると思っています。CMD BATCH – shayaa

    答えて

    1

    stdoutまたはstderrを使用して、印刷するログをリダイレクトできます。その方法の例は次のようになります:

    write("Hello World!!", stderr()) 
    

    ここでは、「Hello World !!」をリダイレクトしています。 stderrになります。上のコードスニペットでstderr()の代わりにstdout()を使用する場合は、理想的にはログをstdoutに書き込む必要があります。しかし、私はstdoutに書き込むときにいくつかの問題を見た。

    +0

    ご返信ありがとうございます。それが動作していない、それはまだ出力を.Routファイルで示しています。私は意図的にコンソールにエラーを投げることができるように、宣言されていない変数 'ss'をコードに入れましたが、.Routファイルにエラーが表示されていました。' 'Hello World !! ''、ss、stderr())' – PPC

    +0

    @シャヤは正しい。あなたのRスクリプトを "Rscript "で実行してください。上記のように書くことができます。 – abhiieor

    +0

    お返事ありがとうございます。これは 'Stdout()'の助けを借りて動作しました。 – PPC

    1

    私は@shayaaと@abhiieorの助けを借りて私自身の質問に答えました。

    コンソールで出力を確認する必要がある場合は、実行可能な.batファイルでR CMD BATCHの代わりにRscriptを使用すると考えられます。

    バッチコード:上記のコードで

    "C:\Program Files\R\R-3.2.2\bin\Rscript.exe" Test.R 
    pause 
    

    Test.Rコード

    print("-Hello World!!",stdout())

    stdout()は、コンソールに出力をリダイレクトします。