繁体   English   中英

使用图运行R脚本

[英]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 Rscriptwhereis Rscript (通常是/ usr / bin / Rscript)。 忘记bash脚本。 你可以将--vanilla和--slave参数传递给Rscript,但是我没有看到目的...... O_o

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM