使用图运行R脚本

Ste*_*ehl 28 bash shell r

我有一个小的shell脚本(bash),它运行一个R脚本,生成一个绘图作为输出.在剧情呈现R退出之后,一切都运行良好但是即时.有没有办法让R会话保持活动状态,直到绘图窗口关闭.

shell脚本.

#!/bin/bash
R --slave --vanilla < myscript.r
Run Code Online (Sandbox Code Playgroud)

和R脚本.

daq = read.table(file('mydata.dat'))
X11()
pairs(daq)
//R Completes this and then exits immediately.
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!

Mar*_*ark 29

如果使用Rscript命令(更适合此目的),则运行如下:

#!/usr/bin/Rscript

daq = read.table(file('mydata.dat'))
X11()
pairs(daq)

message("Press Return To Continue")
invisible(readLines("stdin", n=1))
Run Code Online (Sandbox Code Playgroud)

确保在myscript.r上设置执行权限,然后运行如下:

/path/to/myscript.r
Run Code Online (Sandbox Code Playgroud)

或没有shebang:

Rscript /path/to/myscript.r
Run Code Online (Sandbox Code Playgroud)

  • 这并不好,因为OP希望脚本在关闭绘图后终止,而不是在按下某个键后终止. (4认同)
  • 这对我不起作用.图表永远不会出现......(在Windows上) (3认同)

小智 13

您可以添加一个每n秒检查一次图形设备的循环:

while (!is.null(dev.list())) Sys.sleep(1)
Run Code Online (Sandbox Code Playgroud)

这将睡眠,直到您关闭绘图窗口.