运行 R 从 Rscript 交互
Run R interactively from Rscript
我正在尝试从 Rscript 启动闪亮的应用程序或交互式 .Rmd 文档。然而,我得到的只是一条消息
Listening on http://127.0.0.1:...
我相信这是因为 R 在交互模式下是 运行(another post 关于这个)。我如何编写正确的 Rscript 才能使以下任一方法起作用?
我的脚本
#!/usr/bin/Rscript
## This
library(shiny)
runApp(appDir = "../app")
## Or this
## rmarkdown::run("Main.Rmd")
如果我正确理解你的问题,我能够用 littler, which I use in lieu of Rscript
for scripting tasks that revolve around R. I'm running CentOS 7, and based on the code in your question it looks like you are on a Unix-like machine, so installing littler 实现这个应该不是问题。为了最小的可重复性,我使用了 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 启动时一样 - 但如果你有其他想法,请澄清。
谢谢@nrussell,你的例子对我帮助很大!
这是我在 Windows 10 上启动交互式降价文档的解决方案。
REM Change to correct directory
cd "C:\Users\me\Documents\project_folder\"
REM Print files available (not required, but helpful)
dir
REM Point system to R's Pandoc with Rscript then launch
"C:\Program Files\R\R-4.0.3\bin\Rscript.exe" -e ^
"Sys.setenv(RSTUDIO_PANDOC='C:/Users/me/Documents/RStudio/bin/pandoc'); rmarkdown::run(file = 'myInteractiveMarkdown.Rmd', shiny_args = list(launch.browser = TRUE, host = '127.0.0.1'))"
我发现最初有两个错误:
- 当我没有将系统环境指向 R 的 pandoc 时,它给出了错误消息
error pandoc version 1.12.3 or higher is required
,我使用说明
- 当我在
shiny_args
中设置端口时,后续执行bat文件会报错端口已经忙
我正在尝试从 Rscript 启动闪亮的应用程序或交互式 .Rmd 文档。然而,我得到的只是一条消息
Listening on http://127.0.0.1:...
我相信这是因为 R 在交互模式下是 运行(another post 关于这个)。我如何编写正确的 Rscript 才能使以下任一方法起作用?
我的脚本
#!/usr/bin/Rscript
## This
library(shiny)
runApp(appDir = "../app")
## Or this
## rmarkdown::run("Main.Rmd")
如果我正确理解你的问题,我能够用 littler, which I use in lieu of Rscript
for scripting tasks that revolve around R. I'm running CentOS 7, and based on the code in your question it looks like you are on a Unix-like machine, so installing littler 实现这个应该不是问题。为了最小的可重复性,我使用了 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 启动时一样 - 但如果你有其他想法,请澄清。
谢谢@nrussell,你的例子对我帮助很大!
这是我在 Windows 10 上启动交互式降价文档的解决方案。
REM Change to correct directory
cd "C:\Users\me\Documents\project_folder\"
REM Print files available (not required, but helpful)
dir
REM Point system to R's Pandoc with Rscript then launch
"C:\Program Files\R\R-4.0.3\bin\Rscript.exe" -e ^
"Sys.setenv(RSTUDIO_PANDOC='C:/Users/me/Documents/RStudio/bin/pandoc'); rmarkdown::run(file = 'myInteractiveMarkdown.Rmd', shiny_args = list(launch.browser = TRUE, host = '127.0.0.1'))"
我发现最初有两个错误:
- 当我没有将系统环境指向 R 的 pandoc 时,它给出了错误消息
error pandoc version 1.12.3 or higher is required
,我使用说明 - 当我在
shiny_args
中设置端口时,后续执行bat文件会报错端口已经忙