Я могу отсортировать первый элемент selectizeinput в алфавитном порядке с помощью функции sort (). Затем я хочу, чтобы второй элемент selectizeinput также был в алфавитном порядке. Пытался снова использовать сортировку, но это не сработало. (если вы выберете ford в качестве производителя)
Не могу найти другого решения, но я хотел бы, чтобы все будущие selectizeinputы были упорядочены в алфавитном порядке, независимо от того, что было выбрано перед ним. Я могу сделать это по-другому?
Код:
library(shiny)
Data2 <- data.frame(Manufacturer= c("Aston Martin Lagonda", "Honda", rep("Ford",8)),
Model= c("DBS","Jazz", "Fiesta", "BMAX", "Ecosport", "Focus", "Grand CMAX", "CMAX", "Kuga", "Mondeo"))
ui <- fluidPage(
useShinyjs(),
fluidRow(
column(width = 4,
wellPanel(selectizeInput("Select1_1", "Choose Manufacturer", sort(Data2$Manufacturer),
options= list(placeholder = '',
onInitialize = I('function() {this.setValue(""); }'))),
selectizeInput("Select1_2", "Choose Model", sort(Data2$Model),
options= list(
placeholder = '',
onInitialize = I('function() {this.setValue(""); }')))
)
)
)
)
server <- function(input, output,session){
observeEvent(input$Select1_1,{
updateSelectizeInput(session,'Select1_2',
choices = unique(Data2$Model[Data2$Manufacturer == input$Select1_1]))
})
observeEvent(input$Select1_2,{
updateSelectizeInput(session,'Select1_3',
choices = unique(Data2$Model_Year[Data2$Manufacturer == input$Select1_1 &
Data2$Model == input$Select1_2 ]))
})
}
shinyApp(ui = ui, server = server)