pic*_*ick 7 r rscript r-markdown shiny
我正在尝试从Rscript启动一个闪亮的应用程序或交互式.Rmd文档.但是,我得到的只是一条信息
听http : //127.0.0.1:...
我相信这是因为R正在以交互模式运行(关于此的另一篇文章).如何编写正确的Rscript以便以下任何一个都能正常工作?
#!/usr/bin/Rscript
## This
library(shiny)
runApp(appDir = "../app")
## Or this
## rmarkdown::run("Main.Rmd")
Run Code Online (Sandbox Code Playgroud)
如果我正确理解了您的问题,则可以使用littler来实现这一点,我可以用littler代替Rscript围绕R的脚本任务。我正在运行CentOS 7,并且根据您问题中的代码,您看起来像在类似Unix的计算机上,因此安装littler应该不是问题。为了使再现性最小,我使用了RStudio提供的默认闪亮应用程序和基于闪亮的Rmarkdown模板,分别将它们另存为testapp(项目/应用程序目录名称)和testRMD.rmd。然后,我有以下脚本:
测试程序
#!/usr/bin/env r
shiny::runApp(
"~/tmp/delete/testapp",
port = 7088,
launch.browser = TRUE,
host = "127.0.0.1")
Run Code Online (Sandbox Code Playgroud)
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"))
Run Code Online (Sandbox Code Playgroud)
设置这些文件的权限,以便可以执行它们-
[nathan@nrussell R]$ chmod +x testapp.r testRMD.r
Run Code Online (Sandbox Code Playgroud)
(chmod +u ...应该足够,但是无论如何...),并且应该都可以从终端运行它们了,等等。
[nathan@nrussell R]$ ./testapp.r
Loading required package: shiny
Listening on http://127.0.0.1:7088
Run Code Online (Sandbox Code Playgroud)

[nathan@nrussell R]$ ./testRMD.r
Loading required package: shiny
Listening on http://127.0.0.1:7088
Run Code Online (Sandbox Code Playgroud)

Rmd我省略了文件的一些其他命令行输出,但是我敢肯定,如果需要的话,可以很容易地将其抑制。无论如何,这似乎正常工作-闪亮的应用程序和Rmarkdown应用程序都是交互式的,就像从RStudio启动时一样-但是,如果您有其他想法,请进行说明。