the issue you have is 100,000 is a lot. for typical short strings this could get up to 10mb or so. Browser/Web memory and transfer times and so. Traditional selectInput would preload it all into the UI. so thats definitely out.
selectizeInput is much better, it has a server option etc, but even then i cant get good performance beyond 30,000 or so.
df <- data.frame(
names = paste0("VAR_",1:30000)
)
library(shiny)
ui <- fluidPage(
selectizeInput("myinput", "Select...", choices = NULL)
)
server <- function(input, output, session) {
updateSelectizeInput(session, 'myinput', choices = df$names, server = TRUE,
options= list(maxOptions = length(df$names)))
}
shinyApp(ui, server)
Devils advocate wise, are you sure that a single select list would even be optimal from a user perspective given the enormity of the list ? From my own experience as a user I'd expect what I'm searching for to be structured hierarchically to help me find it...