如果我理解您的问题正确,我能够通过
littler来实现这一点,而不是使用
Rscript
进行围绕R的脚本任务。我正在运行CentOS 7,根据您问题中的代码,看起来您正在使用类Unix的机器,因此
安装littler应该不是问题。为了实现最小的可重复性,我使用了由RStudio提供的默认shiny应用程序和基于shiny的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
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
![enter image description here](https://istack.dev59.com/yzzbN.webp)
[nathan@nrussell R]$ ./testRMD.r
Loading required package: shiny
Listening on http://127.0.0.1:7088
![在此输入图像描述](https://istack.dev59.com/tsdV7.webp)
有关Rmd
文件的一些其他命令行输出被省略了,但是如果需要,这些输出很容易被抑制。总之,这似乎正常工作- shiny应用程序和Rmarkdown应用程序都是交互式的,就像从RStudio启动时一样- 但是如果您有其他想法,请澄清。
launch.browser
值为真 (facepalm)。虽然我还没有尝试过 littler,但它看起来非常不错。现在我需要将它与 Windows 共享。在尝试时,我发现在渲染 RMarkdown 时,由于某种原因需要使用default_file
而不是file
指定文件名。 - Rorschachlaunch.browser
参数是关键点。 - nrussell