从Rscript以交互方式运行R

从Rscript以交互方式运行R,r,shiny,r-markdown,rscript,R,Shiny,R Markdown,Rscript,我正在尝试从Rscript启动一个闪亮的应用程序或交互式.Rmd文档。然而,我得到的只是一条信息 正在收听: 我相信这是因为R是以交互模式运行的(关于这一点)。如何编写正确的Rscript,使以下任一项都能工作 我的剧本 如果我正确理解了您的问题,我就能够用它来实现这一点,我使用它来代替围绕R编写脚本的任务。Rscript。我正在运行CentOS 7,根据您问题中的代码,看起来您是在一台类似Unix的机器上,因此不应该是问题。为了最小化再现性,我使用了RStudio提供的默认闪亮应用程序和基于闪

我正在尝试从Rscript启动一个闪亮的应用程序或交互式.Rmd文档。然而,我得到的只是一条信息

正在收听:

我相信这是因为R是以交互模式运行的(关于这一点)。如何编写正确的Rscript,使以下任一项都能工作

我的剧本
如果我正确理解了您的问题,我就能够用它来实现这一点,我使用它来代替围绕R编写脚本的任务。
Rscript
。我正在运行CentOS 7,根据您问题中的代码,看起来您是在一台类似Unix的机器上,因此不应该是问题。为了最小化再现性,我使用了RStudio提供的默认闪亮应用程序和基于闪亮的Rmarkdown模板,将它们分别保存为
testapp
(项目/应用程序目录名)和
testRMD.rmd
。然后,我有以下脚本:


第r页


testRMD.r


设置这些文件的权限,以便可以执行这些文件-

[nathan@nrussell R]$ chmod +x testapp.r testRMD.r
chmod+u…
应该足够了,但无论如何…),并且您应该设置好从终端运行它们,等等




对于我省略的
Rmd
文件,还有一些额外的命令行输出,但我确信如果需要,可以很容易地抑制这些输出。无论如何,这似乎工作正常-Shining应用程序和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时,它给出了错误消息
    错误pandoc版本1.12.3或更高版本是必需的
    ,我使用说明解决了这个问题
  • 当我在
    shinny_args
    中设置端口时,bat文件的后续执行将得到一个错误,即端口已经繁忙

  • 谢谢!出于某种原因,我只是假设launch.browser总是正确的(facepalm)。我还没试过littler,但看起来很不错。我需要这是共享的windows以及现在虽然。在尝试此操作时,我发现在呈现rmarkdown时,出于某种原因,我需要使用
    default\u file
    而不是
    file
    指定文件名。@nongkrong太好了,HTH。我没有用Rscript测试它,但它也应该能与该接口一起工作;无论如何,我认为
    launch.browser
    参数是这里的关键。
    #!/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
    
    [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
    
    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'))"