У меня есть маленький сценарий оболочки (удар), который запускает скрипт R, который производит график, как произведено. Все хорошо работает, но immedietly после графика представляется выходами R. Есть ли способ поддержать сессию R, пока окно графика не закрывается.
Сценарий оболочки.
#!/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
Это не идеальное решение, но вы можете вызвать locator()
сразу после команды plot.
Или просто сохраните график в pdf, а затем вызовите на нем программу просмотра pdf с помощью system
.
Одним из решений было бы выписать сюжет в pdf:
pdf(file="myplot.pdf")
##your plot command here
plot( . . . )
dev.off()
Более важный вопрос: почему вы хотите, чтобы R запускался после создания графа? Используйте его либо в интерактивном режиме, либо в пакетном режиме ... Я не понимаю, чего вы хотите добиться. Кроме того, попробуйте littler
, он находится в репозиториях Ubuntu (репозитории вселенной, если я прав), или Rscript
, так что перепишите свой скрипт и назовите его myscript.r, и обязательно чтобы указать правильный путь в первой строке. Попробуйте , где Rscript
(обычно / usr / bin / Rscript). Забудьте о сценарии bash. Вы можете передать аргументы --vanilla и --slave в Rscript, но я не вижу цели ... O_o