首页 > 解决方案 > 如何将实时进度数据传递到 Flexdashboard 中的块?

问题描述

我有大量的 r 代码,可以从 Jira 和其他应用程序读取数据,然后最终使用 Flexdashboard/Shiny 显示结果。我可以让数据显示正常,但我正在寻找的是一种在数据加载时在仪表板的一部分上显示数据加载进度的方法。

我已经简化了代码,只显示了一个仪表和最小的仪表板。我怎样才能让不断变化的变量“amt”在仪表发生变化时更新它 - 因此,一个进度条?

---
title "Test"
output: flexdashboard::flex_dashboard
runtime: shiny
---

```{r global, include=FALSE}
library(flexdashboard)

for (i in 1:100) {
  Sys.sleep(0.1)
  amt <- reactive({i})
}

```
Progress
---------------------------

### Progress

```{r}
gaugeOuput("gauge1")
output$gauge1 = renderGauge({gauge(amt(), min = 0, max = 100, symbol = '%')})

```

标签: rshinymarkdownflexdashboard

解决方案


可以添加进度条,尽管我认为这并不容易。向下滚动到“更复杂的进度示例”:https ://shiny.rstudio.com/articles/progress.html 。如果您能弄清楚并创建一个代表,我将不胜感激!如果我能找到一个有效的例子,我会再次分享。

编辑:您可以使用shinybusy包执行此操作。从他们的例子中复制:

fluidPage(add_busy_bar(color = "#86D0F9")) #make sure to add a color or it will
                                           #be clear and you won't see it

actionButton("go", "Submit")

创建您的事件反应对象

example <- eventReactive(input$go{
#some function
})

然后添加这个:

observeEvent(input$go, {
example()
})


推荐阅读