R + Shiny 哪个锤子?直的 Shiny、flexdashboard 还是 shinydashboard? [关闭]

     2023-03-24     248

关键词:

【中文标题】R + Shiny 哪个锤子?直的 Shiny、flexdashboard 还是 shinydashboard? [关闭]【英文标题】:R + Shiny which hammer? straight Shiny, flexdashboard or shinydashboard? [closed] 【发布时间】:2016-10-25 19:39:18 【问题描述】:

冒着被mods "too broad a question" hammer 击中的风险,我想问一下,鉴于出现了大量的交互式 R Shiny 工具和包,你什么时候使用哪一个?

    Shiny - 对我来说,唯一的缺点是您的项目需要从闪亮的服务器上运行,但似乎是最佳选择。

    shinydashboard - 闪亮但有用于标注的漂亮值框。

    flexdashboard - 把它写在 Rmd.直接 Shiny 没有给你带来什么?如果您乐于传递数据,也许对通过电子邮件发送给客户有用?我一直在玩flexdashboard,但它无法使用数据表(库(DT))让我觉得它需要更多的迭代。

查看其他答案,asking this question中我并不孤单。

创作者提供了许多画廊来展示他们的软件包/方法,但您怎么知道该走哪条路?

使用其中一种的明显优势是什么?

【问题讨论】:

您的输入和预期输出是什么?开玩笑的人。这是一个有用的问题,有望产生一些好的答案。 好吧@cory 我已经投了一个反对票,所以猴子锤子正在工作。我希望 SO 会更担心减少重复的学生作业问题,而不是像这样的大师可以分享他们经验的主题...... 如果您想将应用部署到服务器(不仅仅是在 RStudio 中运行),我相信您需要 Shiny Server 来提供所有选项。 你应该能够在另一个选项中使用有用的元素,因为它们都基于 R/Shiny/RMarkdown。使用哪一个取决于您想要实现的目标:显示更多静态内容的仪表板?需要定期更新的报告?人们可以在其中更改大量参数的交互式应用程序? 感谢@warmoverflow 的想法。理想情况下,一旦用户获得他们想要的洞察力,我想要一个带有漂亮打印报告按钮的交互式仪表板。 【参考方案1】:

需要做出细微差别。交互性不一定需要在其背后运行代码的服务器。可以使用嵌入式 JavaScript 提供交互性,该 JavaScript 将在客户端执行(如 plotly、highcharts、leaflet 等)。所以如果我们不使用“交互性”这个词,而是明确地描述交互性,那么你的选择就变成了:

Shiny:需要一个服务器来执行用户输入的 R 代码。可以实现任何布局。可以通过处理服务器端(在 R 中)或客户端(在嵌入式 JavaScript 中)来运行交互式代码。 shinydashboard:需要一个服务器来执行用户输入的 R 代码。可以实现仪表板布局。包含一些设计用于仪表板布局的特定小部件。可以通过处理服务器端(在 R 中)或客户端(在嵌入式 JavaScript 中)来运行交互式代码。 flexdashboard:只是一个看起来像仪表板的文档。还包含一些设计用于仪表板布局的特定小部件。只能在客户端运行交互式代码(在嵌入式 JavaScript 中)。

因此,基本上,如果现有包(使用 htmlwidgets)可以提供所需的交互性,那么您可以只使用 flexdashboard 而无需将其部署到任何 Shiny 服务器。否则,您确实需要部署到 Shiny 服务器,并且应该使用 Shiny 或 Shinydashboard。

【讨论】:

如果你在 flexdasboard 中使用闪亮的运行时,你需要一个闪亮的服务器来托管它。【参考方案2】:

我不同意您需要拥有 Shiny Server 才能运行闪亮的应用程序。我只是在我们的服务器上的 5050 端口(防火墙后面)上托管我闪亮的应用程序,任何客户端都可以通过 ip:port 访问该应用程序。我只运行 1 个 RStudio 会话来完成此操作。

如果我通过我们的路由器打开端口转发,这个应用程序也可以通过互联网访问 - 但出于安全原因,我不允许这样做。

我喜欢 Shiny 提供的自定义网页的灵活性。

ShinyDashboard 很棒,因为它提供了商业外观,而无需自己编写所有的 css 和 html。

Flexdashboard 也很好,因为您可以将它托管在可以处理降价的服务上,而不是通过 iFrame 或其他方式插入应用程序。

【讨论】:

【参考方案3】:

我喜欢将闪亮的模块放在 flexdashboard 中。只要您将runtime: shiny 放在您的YAML 标题部分,使用闪亮的模块应该相对简单。相对而言,我的意思是,花一天时间阅读 RStudio 中的所有示例,然后尝试对您的代码执行相同的操作。一旦您完成了学习曲线,flexdashboards 中的模块将使未来的开发更加精简、轻松,并且根据我的经验,让我有机会真正专注于我被要求解决的基于数据的基础问题。我认为flexdashboards + shiny modules 是两全其美的:使用 flexdash 分解一些布局项,轻松添加或删除一段代码,以更直观的布局隔离应用程序代码的各个方面('块的阴影' 在 RMD 文件等中),同时仍然允许您进行更复杂的、典型的 shiny 事情,例如设置观察者、代理或自定义布局。

【讨论】:

【参考方案4】:
    shinydashboard 具有比默认闪亮更好的 UI 元素,但它就像一个现代主题。我认为它不应该被列为其他 2 的竞争对手。 flexdashboard 只是增强的 RMarkdown,使用简单的 UI 排列约定、htmlwidgets 等。您可以在其中使用 Shiny,但它是有限的。 要使用 Shiny,您需要为 UI 和行为编写更多代码,学习更多与 html、css 相关的内容,尤其是需要一些时间掌握的响应式内容。最后,您将获得所有的权力和控制权。

【讨论】:

如何在 R Shiny server.r 中访问和更改输入变量

...I添加一个actionButton。实际的文件保存命令取决于tabPanel的哪个选项卡打开,我可以通过tabPanelid 查看详情

通过 Shiny Server 将 Shiny 输入传递给 R markdown

】通过ShinyServer将Shiny输入传递给Rmarkdown【英文标题】:PassingaShinyinputtoRmarkdownviaShinyServer【发布时间】:2016-10-1309:22:27【问题描述】:我正在尝试构建一个Shiny应用程序并将其托管在我公司的Shiny服务器上,该服务器接受输入的股... 查看详情

RStudio 服务器 Shiny 上的 R Shiny dev 应用程序启动时崩溃

】RStudio服务器Shiny上的RShinydev应用程序启动时崩溃【英文标题】:RShinydevonRStudioserverShinycrasheswhenapplaunch【发布时间】:2015-01-2005:56:12【问题描述】:我是Shiny的新手,但对R并不陌生。因为工作,我现在在RStudio服务器中进行R开发... 查看详情

R 中 Shiny 中的时间序列预测; Shiny 显示 unix 纪元时间

】R中Shiny中的时间序列预测;Shiny显示unix纪元时间【英文标题】:TimeseriesforecastinginShinyinR;Shinydisplaysunixepochtime【发布时间】:2021-03-1822:15:20【问题描述】:我正在开发的闪亮应用程序的一部分涉及时间序列预测。它包括一个预... 查看详情

R Shiny:PlotOutput 未在 Shiny 应用程序中更新

】RShiny:PlotOutput未在Shiny应用程序中更新【英文标题】:RShiny:PlotOutputnotupdatinginShinyapp【发布时间】:2021-08-0602:03:30【问题描述】:我正在尝试制作一个具有以下功能的简单闪亮应用:2或3个输入:input1:一个选择输入input2:一... 查看详情

R + Shiny + DT :下载过滤数据

】R+Shiny+DT:下载过滤数据【英文标题】:R+Shiny+DT:downloadfiltereddata【发布时间】:2021-11-2010:16:57【问题描述】:我正在尝试做一些类似的事情rshinydownloadfiltrereddatatables(DT)即在Shiny中给定一个表格,搜索一些关键字并下载过滤后的... 查看详情

r:在 Flexdashboard 中使用 Shiny 渲染 Kable

】r:在Flexdashboard中使用Shiny渲染Kable【英文标题】:r:RenderingKablewithShinyinFlexdashboard【发布时间】:2019-03-0700:38:34【问题描述】:有没有办法使用render__函数在Flexdashboard中使用Shiny渲染Kable(knitr::)?我正在查找有关一般Shiny-Kable渲... 查看详情

R Shiny 服务器分段错误

】RShiny服务器分段错误【英文标题】:RShinyServerSegmentationFault【发布时间】:2017-11-1610:19:12【问题描述】:我在Linux机器上运行的Shiny服务器上遇到以下分段错误:-bash:line1:29254SegmentationfaultR--no-save--slave-f\\/opt\\/shiny-server\\/R\\/SockJS... 查看详情

shiny+sqlite打造轻量级网页应用

参考:R语言核心技能:交互式展示Shiny 中文R语言用Shiny包快速搭建交互网页应用 R七种武器之交互化展示包shiny用R的shiny包写一个基因的ID转换小程序https://github.com/jmzeng1314/my-R 使用SQLiteSQLite-Pythonpython开发_sqlite3_绝对... 查看详情

R/Shiny 图不显示在浏览器中

】R/Shiny图不显示在浏览器中【英文标题】:R/Shinyplotsdonotshowinthebrowser【发布时间】:2012-12-0323:04:49【问题描述】:我最近开始玩Shiny。我试图写一些东西来证明中心极限定理。我的代码如下:ui.R:#****************************************ui... 查看详情

R/Shiny 中的可拖动折线图

】R/Shiny中的可拖动折线图【英文标题】:DraggablelinechartinR/Shiny【发布时间】:2018-04-2701:29:31【问题描述】:我已经构建了一个R/Shiny应用程序,它使用线性回归来预测一些指标。为了让这个应用更具交互性,我需要添加一个折线... 查看详情

R/Shiny App 将绘图写入 RStudio 中的绘图视图而不是 Shiny UI

】R/ShinyApp将绘图写入RStudio中的绘图视图而不是ShinyUI【英文标题】:R/ShinyAppWritesPlotstoPlotViewinRStudioInsteadofShinyUI【发布时间】:2021-12-1400:57:43【问题描述】:我有一个带有plotOutput组件的Shiny应用程序:plotOutput("plot_data")使用vis_dat... 查看详情

在 R/Shiny 中将输出组件设置为空

】在R/Shiny中将输出组件设置为空【英文标题】:SetanOutputComponenttoEmptyinR/Shiny【发布时间】:2021-12-1111:53:47【问题描述】:我的Shiny主面板中有uiOutput和plotOutput组件。plotOutput("plot_data"),uiOutput("summary_data")我在服务器函数中有典型的... 查看详情

R Shiny 加速数据加载

】RShiny加速数据加载【英文标题】:RShinySpeedUpDataLoading【发布时间】:2015-12-1819:57:12【问题描述】:我有一个Shiny应用程序,需要先加载一个.RData文件。.RData文件只有一个大文件,它有2800万行和25个变量。由于文件很大,Shiny页... 查看详情

以编程方式构建 SQL 查询 R/Shiny/RODBC

】以编程方式构建SQL查询R/Shiny/RODBC【英文标题】:ProgrammaticallybuildingSQLQueryR/Shiny/RODBC【发布时间】:2017-09-2216:32:58【问题描述】:我正在使用R/Shiny中的inputDateRange()构建SQL查询语句。我的问题是处理各种字符串以将日期包含在SQL... 查看详情

如何知道(或指定)R shiny 使用的 localhost 端口(在本地运行时)

...间】:2014-08-1419:54:14【问题描述】:我想知道Rshiny将使用哪个端口来显示应用程序。我可以在一些论坛上看到端口应该是8100,但是当我运行应用程序时,每次重新启动R时,选择的posrt 查看详情

将所有 tabPanel 对齐一行 R Shiny

】将所有tabPanel对齐一行RShiny【英文标题】:AligningallthetabPanelsinonelineRShiny【发布时间】:2019-12-2500:34:10【问题描述】:我正在尝试将tabPanels与tabBox对齐在同一行,即使窗口大小已更改。有什么办法吗?请指教。Rshiny代码:library(... 查看详情

R - Shiny 上的实时图表

】R-Shiny上的实时图表【英文标题】:RealtimechartonR-Shiny【发布时间】:2017-03-1809:21:24【问题描述】:我正在尝试制作一个交互式图表,在闪亮的应用程序上绘制金融股票数据。我的尝试是不断更新数据,因此图表。我使用一个名... 查看详情