从 R Shiny App 输出纯 HTML 文件

Posted

技术标签:

【中文标题】从 R Shiny App 输出纯 HTML 文件【英文标题】:Output Pure HTML File From R Shiny App 【发布时间】:2018-03-16 11:08:39 【问题描述】:

我正在寻找部署我的 R Shiny 应用程序,但是我无法使用标准方法使用 runapp 命令并将 IP 设置为 0.0.0.0。我想知道是否有任何方法可以输出包含 ui.R 和 server.R 功能的纯 html 文件,以便我可以使用每天生成的纯 HTML 文件进行部署。 R/Shiny 是否有可能生成一个 index.html 文件,该文件将包含 ui 元素以及模拟 server.R 功能/反应性?

【问题讨论】:

简答,不。如果要部署交互式 Shiny 应用程序,您需要部署 shiny-server 或使用 shinyapps.io 我想补充一点,您可以将 Shiny 功能嵌入到文档中,例如 rmarkdown。这可能适合您的需求。 感谢您的回复。我可以使用 rmarkdown 来引用 R Shiny 应用程序以输出纯 HTML 的 Rmarkdown 文件吗?我得到的基本上是我可以在我的本地机器上运行该应用程序,但要将其部署到更大的受众,我很可能需要一个 HTML 文件,因为我正在部署的地方不会安装 R。跨度> 这真的取决于应用程序的功能。您需要为工作选择正确的工具,我在本地使用闪亮服务器,这是一件简单的事情。 R Notebooks 是自包含的html,嵌入了R 代码以实现可重复性。如果您使用 RStudio IDE,它们可以很容易地以 .Rmd 文件的形式打开和编辑。但是,在嵌入数据和任何其他支持它的资产后,它们会很快变得非常大。 【参考方案1】:

基本上,@Kevin Arschenau 已经指出了他的 cmets 中最重要的几点。

您需要一个 R 服务器来执行闪亮的应用程序。无法将其转换为“纯 HTML”并通过 javascript 运行交互性。原因是闪亮的应用程序必须在运行时执行 R 代码,而 javascript 不知道如何处理。

如果您要部署到的站点没有 R(和 shiny-server)的有效安装,则显示闪亮应用程序的唯一方法是将应用程序托管在不同的服务器上并将其嵌入(通过 iframe )。例如,您可以在shinyapps.io 上上传一个应用程序并将其包含在您的网页中,如here 所示。

如果您的公司不允许您在第三方网站上托管应用程序(出于披露原因),您必须咨询 IT 部门并要求他们这样做

在您公司的服务器上安装Rshiny-server 或 给你一个 VM 或 docker 容器,这样你就可以在那里安装依赖项

对于 docker,有一些项目可以促进这个过程。例如,shinyproxy 可以通过 LDAP 身份验证轻松创建可扩展的应用程序。

如果您的公司直接使用shiny-server,请注意免费版有用户限制。

【讨论】:

感谢您的回复。如果我有一台 Linux 服务器,我可以只安装 R 并让该实例充当服务器,还是我也需要闪亮的服务器? 据我所知你需要shiny-server。可以找到Ubuntu 14.04 x64 的安装说明here

以上是关于从 R Shiny App 输出纯 HTML 文件的主要内容,如果未能解决你的问题,请参考以下文章

R shiny教程-3:添加小部件到Shiny App

如何使用操作按钮在 R Shiny 中显示和隐藏表格输出?

Shiny App - 从上传的 CSV 生成和下载 PPTX 幻灯片

创建可以输出多种文件类型R Shiny的downloadButton

r Shiny 输出表的 HTML 模板的格式化问题

R Shiny - 我无法从selectInput操作中检索选定的输出值