2011-08-11 10 views
6

私は簡単なRスクリプトを持っています。 Rscript.exeを使用して実行すると、デフォルトではPDFファイルにプロットされます。スクリプトでプロットウィンドウを開くようにします。 RscriptはPDFにプロットしています

が、私はコマンドを使用して:

Rscript.exe tmp_plot.R 

rファイルtmp_plot.Rは含まれています

x <- 1:10 
y <- sin(x) 
plot(x,y) 

答えて

17

あなたは非対話型の方法でRを実行している - Rscriptがスクリプトのためのものです - ので、デフォルトプロットデバイスがpdf()で、x11()でないか、またはOSのデフォルト値(外観ではwindows())ではありません。しかし、代替デバイスを開くのは簡単です。 x11()またはwindows()を使用してください。スクリーン上にプロットを表示するスクリプトを書く際に問題となるのは、表示されているコード例では、画面に表示されているか、pdf()デバイスであるかにかかわらず、プロットを描画するとすぐにスクリプトが終了するということです。せいぜい、あなたが例えば、それはSys.sleep()を使用して一時停止するかもしれません。:

x <- 1:10 
y <- sin(x) 
x11() ## or windows() 
plot(x,y) 
Sys.sleep(10) 

私はあなたがこのことについて間違った道を進んでいると思います。あなたが何らかの分析を実行するRステートメントのセットを意味するR "スクリプト"を実行するときに対話性が必要な場合は、OS上でスクリプト/スクリプトを1行ずつ進めることができるエディタ/ IDEを得ることをお勧めしますまたは一度にコードのチャンクに加えて、実行中のRセッションと対話します。私はこのためにEmacsとESS拡張を使用します。 Tinn-RやRStudioを選択肢と考えるかもしれません。

Rscriptは、人為的なやりとりや操作を必要としないスクリプトやバッチのようなジョブを実行するためのものです。

+0

お返事ありがとうございます。はい、私はRStudioを使用しています。バッチファイルを使って別のマシンに自分のrスクリプトをスタンドアロンアプリケーションとして「展開」したいと思っていました。 Matlabのdeploytoolに類似したものはありますか? – r00kie

3
library(tcltk) # for message box and thus hold-open functionality 

x11() # for Linux, see documentation for other operating systems 

# first plot 
# second plot 

# hold-open functionality prevents script from exiting user acts 
prompt <- "hit spacebar to close plots" 
extra <- "some extra comment" 
capture <- tk_messageBox(message = prompt, detail = extra) 

あなたが所定のタイマーのアイデアを気に入らない場合は、上記のスクリプトは、キーを押して上の唯一の出口(スペースキーまたは入力してください)または、ユーザからのマウスクリック(OKボタン)。

+1

Rscriptの開発者は、[gnuplot](http://www.gnuplot.info)と同様の--persistオプションを検討したいかもしれません。 –

関連する問題