Ну @ Джит, я думаю, что это решение вашей проблемы, и оно основано на ответе, который я предлагаю вам ранее.
В этом примере, чтобы не сказать, что я хочу блестящее приложение, которое даетВы таблица с названием и сокращением названия выбранных вами штатов.
Данные
df <- structure(
list(
state = c("Alabama", "Alaska", "Arizona", "Arkansas",
"California", "Colorado", "Connecticut", "Delaware", "Florida",
"Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa",
"Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts",
"Michigan", "Minnesota", "Mississippi", "Missouri", "Montana",
"Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico",
"New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma",
"Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota",
"Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington",
"West Virginia", "Wisconsin", "Wyoming"),
abr = c("AL", "AK",
"AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", "HI", "ID", "IL",
"IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS",
"MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH",
"OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA",
"WA", "WV", "WI", "WY")),
class = "data.frame",
row.names = c(NA, -50L)
)
Подход, который я использую, чтобы закончить свиджет, который показывает все сокращения имен состояний в трех столбцах, а не в длинном
- В пользовательском интерфейсе я поместил три
checkboxGroupInput
внутри dropdownButton
- На сервереЯ объединил значения, выбранные в этих трех входах, в один вектор с функцией
reactive
- Затем я использовал этот объект для фильтрации кадра данных с выбранными состояниями
Приложение
library(shiny)
library(shinyWidgets)
library(dplyr)
ui <- fluidPage(
dropdownButton(
label = "Select states",
status = "default", width = 450,
tags$label("Choose :"),
fluidRow(
column(
width = 4,
checkboxGroupInput(
inputId = "checka",
label = NULL,
choices = df$abr[1:17]
)
),
column(
width = 4,
checkboxGroupInput(
inputId = "checkb",
label = NULL,
choices = df$abr[18:34]
)
),
column(
width = 4,
checkboxGroupInput(
inputId = "checkc",
label = NULL,
choices = df$abr[35:50]
)
)
)
),
tableOutput("table")
)
server <- function(input, output, session) {
abr_selected <- reactive({
x <- c(input$checka, input$checkb, input$checkc)
})
output$table <- renderTable({
df %>%
filter(abr %in% abr_selected())
})
}
shinyApp(ui, server)