17

R スクリプトがあるとします。

library('nnet')    
something <- runif(50); 
print(something) 

コマンド ラインからこのスクリプトを実行すると、次のように出力されます。

> library('nnet')
> something <- runif(5); 
> print(something)
 [1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019

私はそれを印刷したい:

[1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019

これを行う方法がわかりません。sink("/dev/null") は何もしません。stderr を手動でリダイレクトしても何もしません。これに関する有用な情報が見つかりません。

4

5 に答える 5

22

解決策は、R ではなく Rscript で実行することです。他の場所の例 (たとえば、R スクリプトからコマンド ライン パラメータを読み取るにはどうすればよいですか? ) を使用して、コマンド ラインからスクリプトを実行します。

R --args args1 args2... < foo.R

で実行

Rscript foo.R args1 args2 ...

スクリプトではなく、出力のみを生成します。また、スクリプトを実行するためのよりクリーンな方法でもあります。

于 2013-07-22T20:34:03.837 に答える
1

ターミナルで直接実行する場合:

R --slave --args dense 12 0.98 < foo.R

Python から R スクリプトを実行する場合:

process = subprocess.Popen(["R --slave --args %s %d %.2f < /path/to/your/rscript/foo.R" % (, 12, 0.98) ], shell=True)
process.wait()

Rスクリプトをターミナル/コマンドラインおよびバックグラウンドで実行する場合、次のようにR CMD BATCHを使用して、スクリプトのすべての行とプログラムの出力を抑制/回避します。

R CMD BATCH--slave foo.R 2>&1  foo.out &

このリファレンスも参照してください

于 2016-09-16T23:46:36.197 に答える
1

Windows の RStudio IDE (バージョン 1.1.383) の場合:

Ctrl+Shift+Enterキーを押すと、スクリプト全体がエコー付きで実行されます (詳細)

Ctrl+Shift+Sキーを押すと 、エコーなしでスクリプト全体が実行されます (非冗長)

于 2017-11-16T17:43:50.857 に答える