R 用于 R Mardown HTML 渲染的闪亮进度条

问题描述 投票:0回答:1

我有一个 R Shiny 应用程序,它提示用户输入数据集并单击下载按钮以根据该数据集生成 R Markdown 报告。大部分数据转换是在 .rmd 文件上进行的,闪亮的服务器实际上所做的就是收集输入作为 RMarkdown 的参数并将其呈现为 html。

是否可以实现任何类型的进度条?我尝试合并 withProgress() 但我的服务器代码中没有任何增量可以提供给它。理想情况下,我能够打印正在编织的块的 RStudio 控制台消息,但我真的只是在寻找任何能给用户提供反馈的东西,因为有些报告需要很长时间才能处理。

预先感谢您的任何想法。

r shiny r-markdown progress-bar knitr
1个回答
0
投票

{waiter}
包可以帮助您完成任务。检查文档

我在这里使用

onBusy
功能,您可以在渲染文件时向用户显示 Spinner。

注意:您必须在工作目录中创建 input.Rmd 才能使此示例正常工作。

library(shiny)
library(waiter)

ui <- fluidPage(
  useWaiter(),
  waiterOnBusy(html = spin_loaders(42)),
  textInput("name", "Name", value = "Johan Rosa"),
  downloadButton("render", "Render report")
)

server <- function(input, output, session) {
  Waiter$new(id = )
  output$render <- downloadHandler(
    filename = function() "report.html",
    content = function(file) {
      Sys.sleep(5)
      rmarkdown::render(
        input = "input.Rmd",
        output_format = html_document(),
        output_file = file
      )
    }
  )
}

shinyApp(ui, server)
© www.soinside.com 2019 - 2024. All rights reserved.