首页 > 解决方案 > 您如何制作搜索栏来查询闪亮仪表板中的格式化表

问题描述

我无法看到如何使用 esquisse 包来支持此处的搜索栏功能。我希望能够通过名称进行过滤。例如,如果有人要搜索 setosa,它将返回一个格式化的子集表。我正在查看 esquisse 包,但我不确定如何将它集成到 Shiny Dashboard 中。看来我需要更改服务器中的输出。 带有虚拟数据的仪表板示例

library(tidyverse)
library(janitor)
library(shinydashboard)
library(shiny)
library(formattable)
library(golem)
library(esquisse)



#Loading Dummy Data 
data(iris)
summary(iris)
df <- iris
formattable(df)



ui <- dashboardPage(
  dashboardHeader(title = "Title"),
  dashboardSidebar(sidebarSearchForm(label = "Name", "searchText", "searchButton")),
  dashboardBody(formattableOutput("table"))
)

server <- function(input, output) {

  output$table <- renderFormattable({  formattable(df, align = c("l",rep("r", ncol(df))), list(
    `Indicator Name` = formatter("span", style = ~ style(color = "grey",font.weight = "bold")), 
    area(col = 2:length(df)) ~ color_tile("#DeF7E9", "#71CA97")))})


  }

shinyApp(ui = ui, server = server)

标签: rshinyshinydashboard

解决方案


你可以使用as.datatable如下图:

as.datatable(
      formattable(blah blah blah)
)

此外,如果您想使用数据表选项和过滤器等,请使用它们,如下所示:

as.datatable(
  formattable(blah blah blah)
,filter = 'top', rownames = FALSE)

例如,请参见下文:查看放置datatable编辑功能的位置以及放置formattable编辑功能的位置:

as.datatable(
  formattable(mydata, 
            align = c("l",rep("r", NCOL(mydata) - 1)),
            list(`column_1` = formatter("span", style = ~ style(color = "grey", font.weight = "bold")), 
     `column_2` = formatter("span", style = ~ style(color = "blue")),
     `column_3` = formatter("span", style = ~ style(color = "black")),
     `column_4` = formatter("span", style = ~ style(color = "red", font.weight = 
                  "bold"))
     ))
,filter = 'top', rownames = FALSE)

推荐阅读