可以在不打开R环境的情况下运行R Shiny应用程序吗?

时间:2013-04-08 17:09:31

标签: r shiny executable

目前我有一个R闪亮的应用程序,运行它我打开RStudio并执行

setwd("C:/Users/Me/Desktop/R/ShinyProject2")
library(shiny)
......
runApp()

从我目录中的R脚本。

我将应用程序发送给不知道如何使用R的同事进行审核。

所以我只是想知道......是否有一种简单的方法来编写可直接打开UI而无需点击的可执行文件 打开R studio并执行代码?

7 个答案:

答案 0 :(得分:15)

RStudio!= R

R有一个简单的命令行界面,您可以通过在R安装的bin文件夹中运行R.exe在Windows上运行。

还有Rscript.exe,它可以运行表达式或脚本文件。例如:

C:\Program Files\R\R-2.15.2\bin\RScript -e hist(runif(1000))

将(给定正确的路径)创建一个带有直方图的PDF文件。

所以,

  • 您的同事需要R安装
  • 您需要安装才能使所有程序包运行闪亮
  • 或者在代码中添加一堆install.packages()行
  • 您需要为他们提供一个包含闪亮代码的文件夹
  • 您添加了一个Windows .BAT文件,供他们点击
  • 他们运行它,它调用Rscript.exe启动你给他们的闪亮包

或者将它托管在RStudio人员的公共闪亮服务器上,但随后我们都可以看到它。

答案 1 :(得分:9)

我知道这是一个古老的讨论,但它可能会帮助那些知道可以现在完成的人。您可以创建一个独立的闪亮应用程序,该应用程序在计算机上运行,​​无需安装R或任何库。 有一种相对简单的方法(目前我只为Windows用户做过,但对于MacOS也应该这样做),遵循以下详细步骤:http://www.r-bloggers.com/deploying-desktop-apps-with-r/ 。其他选项可能是在Shiny服务器上上传应用程序。

答案 2 :(得分:4)

我遇到了同样的问题,并使用了以下两个解决方案,两者都运行良好。

在shinyapps.io

上发布应用程序

好:随时随地都可以访问该应用。缺点:每月只有25个活跃小时。

  1. 转到https://www.shinyapps.io/并创建一个免费帐户
  2. 配置rsconnect以将R链接到您的新shinyapps帐户(shinyapps documentation中的分步解释)
  3. 在Rstudio中,点击"发布" (旁边运行app按钮)
  4. 从shinyapps.io信息中心获取应用地址并将其发送给您的同事。
  5. 在LAN上共享应用

    好:尽可能多的活跃时间。缺点:需要在同一个本地网络上,应用程序应在连接到该网络的计算机上持续运行。

    您需要在计算机上运行该应用,并通过将runapp命令更改为以下命令在LAN上共享:

    runApp(host="0.0.0.0",port=5050)
    

    然后在你的同事上转到http://[your-IP-address]:5050  (见:Hosting LAN Shiny apps run from command line

答案 3 :(得分:3)

现在,您可以将RInno包用于此类事物。要获得设置:

install.packages("RInno")
require(RInno)
RInno::install_inno()

然后您只需要调用两个函数来设置安装框架:

create_app(app_name = "myapp", app_dir = "path/to/myapp")
compile_iss()

如果您想要加入R,请将include_R = TRUE添加到create_app

create_app(app_name = "myapp", app_dir = "path/to/myapp", include_R = TRUE)

默认包含shiny,magrittr和jsonlite,因此如果您使用ggplot2或plotly等其他包,只需将它们添加到pkgs参数即可。您还可以将GitHub包包含在remotes参数中:

create_app(
    app_name = "myapp", 
    app_dir  = "path/to/myapp"
    pkgs     = c("shiny", "jsonlite", "magrittr", "plotly", "ggplot2"),
    remotes  = c("talgalili/installr", "daattali/shinyjs"))

如果您对其他功能感兴趣,请查看FI Labs - RInno

答案 4 :(得分:2)

现在有一种新的方式可用于通过“电子”和“光子”构建真正独立的Shiny应用exe。有关软件包/插件等,请参见以下链接。

也就是说,RStudio的shinyapps.io或Binder部署可能是可访问性和开发的更好选择。

答案 5 :(得分:1)

我知道这是一个非常古老的讨论,但是我最近遇到了这个问题,在尝试了几种选择之后,我发现使用Shinyshortcut包是最好的:

library(shinyShortcut) shinyShortcut(shinyDirectory = getwd(), OS = .Platform$OS.type, gitIgnore = FALSE)

答案 6 :(得分:1)

以下是快速修复。通过cd在命令行中转到项目目录。然后

 R -e "shiny::runApp(port=8000,host = getOption('shiny.host', '10.10.10.10'))"

现在URL 10.10.10.10:8000将处于活动状态。

要使URL即使在注销后也仍然有效,可以使用nohup。显然,这不是生产环境所需的设置。

 nohup R -e "shiny::runApp(port=8000,host = getOption('shiny.host', '10.10.10.10'))" &