[英]Running R Scripts with Plots
我有一个小的shell脚本(bash),它运行一个R脚本,生成一个绘图作为输出。 在剧情呈现R退出之后,一切都运行良好但是即时。 有没有办法让R会话保持活动状态,直到绘图窗口关闭。
shell脚本。
#!/bin/bash
R --slave --vanilla < myscript.r
和R脚本。
daq = read.table(file('mydata.dat'))
X11()
pairs(daq)
//R Completes this and then exits immediately.
在此先感谢您的帮助!
如果使用Rscript命令(更适合此目的),则运行如下:
#!/usr/bin/Rscript
daq = read.table(file('mydata.dat'))
X11()
pairs(daq)
message("Press Return To Continue")
invisible(readLines("stdin", n=1))
确保在myscript.r上设置执行权限,然后运行如下:
/path/to/myscript.r
或没有shebang:
Rscript /path/to/myscript.r
您可以添加一个每n秒检查一次图形设备的循环:
while (!is.null(dev.list())) Sys.sleep(1)
这将睡眠,直到您关闭绘图窗口。
这不是一个完美的解决方案,但您可以在plot命令之后调用locator()
。
或者只是将绘图保存为pdf,然后使用system
在其上调用pdf viewer。
一种解决方案是将图形写为pdf而不是:
pdf(file="myplot.pdf")
##your plot command here
plot( . . . )
dev.off()
更重要的问题是为什么你希望R在图形创建后运行? 在交互模式或批处理模式下使用它...我不明白你想要完成什么。 此外,尝试littler
,它位于在Ubuntu回购(回购宇宙,如果我是正确的),或Rscript
,因此重写你的脚本,并myscript.r的名字,并且一定要放在正确的路径在第一线。 尝试whereis Rscript
是whereis Rscript
(通常是/ usr / bin / Rscript)。 忘记bash脚本。 你可以将--vanilla和--slave参数传递给Rscript,但是我没有看到目的...... O_o
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.