我是Shiny的新手,并且拥有使用mtcars的基本的闪亮应用程序。我有多个选项卡,其中包含一些输入下拉菜单,并将输出显示为DT表。一切正常,但是我现在想使用一些格式,例如formattable。我想包括的一些格式是基本百分比,十进制。另外,我想添加一些基于单元格的突出显示。我尝试了多种格式化功能,但没有任何运气。我已在服务器端输出中添加了功能,但无法获得正确的组合。下面是我的闪亮代码:
ui <- fluidPage(
titlePanel("mtcars"),
sidebarLayout(
sidebarPanel(
selectInput("cyl",
"cyl:",
c(unique(as.character(mtcars$cyl)))),
selectInput("gear",
"gear:",
c("All",
unique(as.character(mtcars$gear)))), width=2),
mainPanel(
tabsetPanel(
id = 'dataset',
tabPanel("Summary", DT::dataTableOutput("Summary")),
tabPanel("Detail", DT::dataTableOutput("Detail"))))))
server <- function(input, output) {
output$Detail <- renderDataTable(datatable({
data <- mtcars
if (input$cyl != "All") {
data <- data[data$cyl == input$cyl,]
}
if (input$gear != "All") {
data <- data[data$gear == input$gear,]
}
data
}))
output$Summary <- renderDataTable({
cars %>%
filter(cyl==input$cyl) %>%
group_by(gear) %>%
summarise(mpg = median(mpg),
count = n()) %>%
ungroup() %>%
arrange(desc(count))
})}
shinyApp(ui = ui, server = server)
我不确定您到目前为止对formattable
所做的尝试,但是您应该可以在闪亮的应用程序中将其与DT
一起使用。
这里是一个可以尝试的简单示例。这使mpg
列成为百分比。另外,如果为count
列上色,则为绿色。
Other vignettes可用于带有formattable
程序包的其他选项。
output$Summary <- renderDataTable({
my_data <- mtcars %>%
filter(cyl==input$cyl) %>%
group_by(gear) %>%
summarise(mpg = median(mpg),
count = n()) %>%
ungroup() %>%
arrange(desc(count))
# Make percent, for example
my_data$mpg <- percent(my_data$mpg)
# Return formattable datatable
return(
as.datatable(
formattable(
my_data,
list(
count = color_tile("transparent", "green")
)
)
)
)
})