2011-08-11 1 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이 스크립트에 대한 의미 - 따라서 기본 플로팅 장치는 x11()이 아닌 pdf()이거나 사용자 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의 편집기/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) 

당신은 규정 된 타이머의 아이디어를 좋아하지 않는 경우에, 위의 스크립트 것입니다 키를 누른 만 종료 (스페이스 바 또는 Enter) 또는 사용자의 마우스 클릭 (OK 버튼).

+1

Rscript 개발자는 [gnuplot] (http://www.gnuplot.info)에서 제공하는 것과 유사한 --persist 옵션을 고려할 수 있습니다. –