【发布时间】:2021-03-27 12:50:33
【问题描述】:
根据kableExtra文档,这段代码应该能正确输出表格,
library(shiny)
ui <- fluidPage(
# Application title
titlePanel("mtcars"),
sidebarLayout(
sidebarPanel(
sliderInput("mpg", "mpg Limit",
min = 11, max = 33, value = 20)
),
mainPanel(
tableOutput("mtcars_kable")
)
)
)
server <- function(input, output) {
library(dplyr)
library(kableExtra)
output$mtcars_kable <- function() {
req(input$mpg)
mtcars %>%
mutate(car = rownames(.)) %>%
select(car, everything()) %>%
filter(mpg <= input$mpg) %>%
knitr::kable("html") %>%
kable_classic_2() %>%
add_header_above(c(" ", "Group 1" = 5, "Group 2" = 6))
}
}
# Run the application
shinyApp(ui = ui, server = server)
但是,输出与表格主题 kable_classic_2() 不对应。所以我更改了output$mtcars_kable,使其直接打印HTML-codes,如下所示,
library(shiny)
ui <- fluidPage(
# Application title
titlePanel("mtcars"),
sidebarLayout(
sidebarPanel(
sliderInput("mpg", "mpg Limit",
min = 11, max = 33, value = 20)
),
mainPanel(
uiOutput("mtcars_kable")
)
)
)
server <- function(input, output) {
library(dplyr)
library(kableExtra)
output$mtcars_kable <- renderUI(
{
req(input$mpg)
mtcars %>%
mutate(car = rownames(.)) %>%
select(car, everything()) %>%
filter(mpg <= input$mpg) %>%
knitr::kable("html") %>%
kable_classic_2() %>%
add_header_above(c(" ", "Group 1" = 5, "Group 2" = 7))
}
)
}
# Run the application
shinyApp(ui = ui, server = server)
但是,这只会输出HTML 代码,而不是将它们呈现到实际表格中。我想要的输出是在替代主题下找到的 here。
【问题讨论】:
标签: r shiny kable kableextra