Create a select list input control — selectInput
selectInput( inputId, label, choices, selected = NULL, multiple = FALSE, selectize = TRUE, width = NULL, size = NULL ) selectizeInput(inputId, ..., options = NULL, width = NULL)
Arguments
inputId |
The |
|---|---|
label |
Display label for the control, or |
choices |
List of values to select from. If elements of the list are
named, then that name --- rather than the value --- is displayed to the
user. It's also possible to group related inputs by providing a named list
whose elements are (either named or unnamed) lists, vectors, or factors. In
this case, the outermost names will be used as the group labels (leveraging
the |
selected |
The initially selected value (or multiple values if |
multiple |
Is selection of multiple items allowed? |
selectize |
Whether to use selectize.js or not. |
width |
The width of the input, e.g. |
size |
Number of items to show in the selection box; a larger number
will result in a taller box. Not compatible with |
... |
Arguments passed to |
options |
A list of options. See the documentation of selectize.js
for possible options (character option values inside |
Description
Create a select list that can be used to choose a single or multiple items from a list of values.
Value
A select list control that can be added to a UI definition.
Details
By default, selectInput() and selectizeInput() use the JavaScript library
selectize.js (https://github.com/selectize/selectize.js) instead of
the basic select input element. To use the standard HTML select input
element, use selectInput() with selectize=FALSE.
In selectize mode, if the first element in choices has a value of "", its
name will be treated as a placeholder prompt. For example:
selectInput("letter", "Letter", c("Choose one" = "", LETTERS))
Note
The selectize input created from selectizeInput() allows
deletion of the selected option even in a single select input, which will
return an empty string as its value. This is the default behavior of
selectize.js. However, the selectize input created from
selectInput(..., selectize = TRUE) will ignore the empty string
value when it is a single choice input and the empty string is not in the
choices argument. This is to keep compatibility with
selectInput(..., selectize = FALSE).
Server value
A vector of character strings, usually of length
1, with the value of the selected items. When multiple=TRUE and
nothing is selected, this value will be NULL.
See also
updateSelectInput() varSelectInput()
Other input elements:
actionButton(),
checkboxGroupInput(),
checkboxInput(),
dateInput(),
dateRangeInput(),
fileInput(),
numericInput(),
passwordInput(),
radioButtons(),
sliderInput(),
submitButton(),
textAreaInput(),
textInput(),
varSelectInput()
Examples
## Only run examples in interactive R sessions if (interactive()) { # basic example shinyApp( ui = fluidPage( selectInput("variable", "Variable:", c("Cylinders" = "cyl", "Transmission" = "am", "Gears" = "gear")), tableOutput("data") ), server = function(input, output) { output$data <- renderTable({ mtcars[, c("mpg", input$variable), drop = FALSE] }, rownames = TRUE) } ) # demoing group support in the `choices` arg shinyApp( ui = fluidPage( selectInput("state", "Choose a state:", list(`East Coast` = list("NY", "NJ", "CT"), `West Coast` = list("WA", "OR", "CA"), `Midwest` = list("MN", "WI", "IA")) ), textOutput("result") ), server = function(input, output) { output$result <- renderText({ paste("You chose", input$state) }) } ) }