我有一個簡單的R腳本。當它通過Rscript.exe運行時,默認情況下它將繪製成一個PDF文件。我想要腳本打開一個劇情窗口。Rscript正在繪製爲PDF
我使用下面的命令:
Rscript.exe tmp_plot.R
R檔tmp_plot.R包含:
x <- 1:10
y <- sin(x)
plot(x,y)
我有一個簡單的R腳本。當它通過Rscript.exe運行時,默認情況下它將繪製成一個PDF文件。我想要腳本打開一個劇情窗口。Rscript正在繪製爲PDF
我使用下面的命令:
Rscript.exe tmp_plot.R
R檔tmp_plot.R包含:
x <- 1:10
y <- sin(x)
plot(x,y)
您在非交互方式運行的R - RSCRIPT是爲腳本 - 也就是默認繪圖設備是pdf()
,而不是x11()
或任何您的操作系統的默認設置(windows()
由它的外觀)。然而,打開替代設備是微不足道的;使用x11()
或windows()
。嘗試編寫腳本以顯示屏幕上的繪圖時,您遇到的問題是,在您的示例代碼中,腳本在繪製繪圖時立即終止,無論顯示在屏幕上還是顯示在pdf()
設備上。在最好的情況你可能會得到它使用Sys.sleep()
暫停,例如:
x <- 1:10
y <- sin(x)
x11() ## or windows()
plot(x,y)
Sys.sleep(10)
我想你會對此錯誤的方式。如果你想在運行一個R「腳本」時使用交互性,我的意思是一組執行一些分析的R語句,你最好在你的操作系統上得到一個編輯器/ IDE,這樣你就可以在腳本中逐行執行一行代碼或一段代碼,並與正在運行的R會話進行交互。爲此,我使用Emacs和ESS擴展。你可以考慮Tinn-R或RStudio作爲替代品。
Rscript
是用於運行不需要人工交互或干預的腳本或批處理作業。
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按鈕)。
Rscript開發者可能會考慮一個--persist選項,類似於[gnuplot](http://www.gnuplot.info)提供的選項。 –
感謝您的回答。是的,我正在使用RStudio。我想使用批處理文件將另一臺機器上的r腳本「部署」爲獨立應用程序。有沒有類似Matlab的deploytool的東西? – r00kie