我有一个数据帧df
,其列名包含下划线。我想用knitr::kable(df, ...)
格式化它。当这与rmarkdown
使用时,你可以传递给它一个很好的列名列表,它也会自动将名称扩展到多行,使表适合页面。
然而,我正试图使用kable
与闪亮。也就是说,我希望renderXXX()
类型的输出写入output
对象,以便我可以从ui.R
调用我的漂亮表。我试过在server.R
:
renderText(
knitr::kable(df, format = "html")
)
and in ui.R
:
htmlOutput("results_table")
但是这只会导致一个非常混乱的表
我想你会在这里找到完整的答案:https://cran.r-project.org/web/packages/kableExtra/vignettes/use_kable_in_shiny.html
以mtcars数据集为例,首先将以下内容添加到ui部分:
mainPanel(
tableOutput("mtcars_kable")
)
,然后在server部分使用:
library(kableExtra)
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))
}
如果你想要一个更强大的数据表在Shiny,有能力广泛自定义的外观,尝试:
在Shiny中使用DT