从Rs交互式运行R
我正尝试从Rscript启动一个闪亮的应用程序或交互式.Rmd文档。 但是,我所得到的只是一个信息
在http://127.0.0.1上收听:...
我相信这是因为R在交互模式下运行(关于这个的另一篇文章)。 我怎样才能写出正确的Rscript,以便下列任何一种工作?
我的脚本
#!/usr/bin/Rscript
## This
library(shiny)
runApp(appDir = "../app")
## Or this
## rmarkdown::run("Main.Rmd")
如果我正确地理解了你的问题,我就可以用Rscript
来实现这一点,我用它代替Rscript
来编写围绕R的脚本任务。我运行的是CentOS 7,并且基于你的问题中的代码,它看起来像你在类似Unix的机器上,所以安装小文件不应该成为问题。 为了尽可能降低重现性,我使用RStudio提供的默认闪亮应用程序和基于闪亮的Rmarkdown模板,分别将它们保存为testapp
(项目/应用程序目录名称)和testRMD.rmd
。 然后,我有以下脚本:
testapp.r
#!/usr/bin/env r
shiny::runApp(
"~/tmp/delete/testapp",
port = 7088,
launch.browser = TRUE,
host = "127.0.0.1")
testRMD.r
#!/usr/bin/env r
rmarkdown::run(
file = "testRMD.rmd",
dir = "~/tmp/delete",
shiny_args = list(
port = 7088,
launch.browser = TRUE,
host = "127.0.0.1"))
设置这些文件的权限以便它们可以被执行 -
[nathan@nrussell R]$ chmod +x testapp.r testRMD.r
( chmod +u ...
应该就足够了,但不管...),你应该全部设置为从终端等运行它们。
[nathan@nrussell R]$ ./testapp.r
Loading required package: shiny
Listening on http://127.0.0.1:7088
[nathan@nrussell R]$ ./testRMD.r
Loading required package: shiny
Listening on http://127.0.0.1:7088
还有一些额外的命令行输出用于我省略的Rmd
文件,但我相信如果需要可以很容易地抑制它。 无论如何,这似乎工作正常 - 闪亮的应用程序和Rmarkdown应用程序都是交互式的,就像从RStudio启动时一样 - 但如果您有其他想法,请澄清。