r:在Flexdashboard中使用Shiny渲染Kable

时间:2018-10-01 21:13:22

标签: r shiny flexdashboard

是否有一种方法可以使用Flex__board中的Shiny渲染Kable(knitr::)函数?我发现有关常规Shiny-Kable渲染的信息,但不是专门针对Flexdashboard。像这样的链接one很有帮助,但是能够调用render_函数在Flexdashboard中显示Shiny交互式Kable很棒。任何建议都很棒!

谢谢!

Stefan

3 个答案:

答案 0 :(得分:0)

以下是使它在flexdashboard中起作用的一种方法。

shiny::renderUI(
    HTML(
        kable(your_reactive_data())
    )
)

答案 1 :(得分:0)

以上答案对我不起作用。但是,有效的方法是使用xtable::xtable()而不是kable()。它们产生相似的输出,并且具有相应的renderTable()函数。 (与尚未具有相应的renderKable()功能的kable相对。

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

答案 2 :(得分:0)

正确的做法(根据 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*() 函数。