【问题标题】:r: Rendering Kable with Shiny in Flexdashboardr:在 Flexdashboard 中使用 Shiny 渲染 Kable
【发布时间】:2019-03-07 00:38:34
【问题描述】:

有没有办法使用 render__ 函数在 Flexdashboard 中使用 Shiny 渲染 Kable (knitr::)?我正在查找有关一般 Shiny-Kable 渲染的信息,但不是专门针对 Flexdashboard。像one 这样的链接很有帮助,但如果能够调用 render_ 函数在我的 Flexdashboard 中显示 Shiny 交互式 Kable,那就太好了。任何建议都会很棒!

谢谢!

斯蒂芬

【问题讨论】:

    标签: r shiny flexdashboard kable


    【解决方案1】:

    以下是使其在flexdashboard 中工作的一种方法。

    your_reactive_data <- reactive({ your_data })
    
    shiny::renderUI(
        HTML(
            kable(your_reactive_data())
        )
    )
    

    【讨论】:

    • 对我不起作用,即使使用 {r results='asis'},它仍然只打印 ASCII |date |country |city |state | ||:----------|:-------|:----------|:-- .... 而不是漂亮的表格
    【解决方案2】:

    上述答案不起作用(对我来说)。然而有效的是使用xtable::xtable() 而不是kable()。它们产生相似的输出,并且具有相应的renderTable() 函数。 (相对于 kable 还没有对应的 renderKable() 函数。

    renderTable({
      your_reactive_data() %>% xtable::xtable()
    })
    
    

    【讨论】:

      【解决方案3】:

      正确的做法(根据this 文档)只是将代码包装在一个空函数中:

      output$mtcars_kable <- function() {
       req(input$mpg)
       mtcars %>%
         mutate(car = rownames(.)) %>%
         select(car, everything()) %>%
         filter(mpg <= input$mpg) %>%
         knitr::kable("html") %>%
         kable_styling("striped", full_width = F) %>%
         add_header_above(c(" ", "Group 1" = 5, "Group 2" = 6))
      }
      

      我的猜测是因为kable_styling 函数已经生成了HTML,你不需要render*() 函数。

      【讨论】:

        猜你喜欢
        • 2020-04-03
        • 2021-03-20
        • 2020-04-26
        • 2021-04-26
        • 2017-02-11
        • 1970-01-01
        • 2020-11-04
        • 2019-07-24
        • 2020-11-08
        相关资源
        最近更新 更多