actionGroupButtons:
Actions Buttons Group Inputs
addSpinner:
Display a spinner above an output when this one recalculate
airDatepicker:
Air Date Picker Input
animateOptions:
Animate options
animations:
Animation names
appendVerticalTab:
Mutate Vertical Tabset Panel
autonumericInput:
Autonumeric Input Widget
awesomeCheckbox:
Awesome Checkbox Input Control
awesomeCheckboxGroup:
Awesome Checkbox Group Input Control
awesomeRadio:
Awesome Radio Buttons Input Control
bootstrap-utils:
Bootstrap panel / alert
checkboxGroupButtons:
Buttons Group checkbox Input Control
chooseSliderSkin:
Theme selector for 'sliderInput'
circleButton:
Circle Action button
closeSweetAlert:
Close Sweet Alert
colorPickr:
Color Pickr
colorSelectorInput:
Color Selector Input
create_tree:
Create choice structure for 'treeInput()'
demoAirDatepicker:
Some examples on how to use airDatepickerInput
demoNoUiSlider:
Some examples on how to use noUiSliderInput
demoNumericRange:
An example showing how numericRangeInput works
demoVirtualSelect:
Demo for 'virtualSelectInput()'
downloadBttn:
Create a download 'actionBttn'
dropdown:
Dropdown
dropdownButton:
Dropdown Button
dropMenu:
Drop Menu
drop-menu-interaction:
Interact with Drop Menu
dropMenuOptions:
Drop menu options
execute_safely:
Execute an expression safely in server
formaNumericInputUpdate:
Update a Formatted Numeric Input Widget
formatNumericInput:
Format Numeric Inputs
html-dependencies:
HTML dependencies
inputSweetAlert:
Launch an input text dialog
knobInput:
Knob Input
materialSwitch:
Material Design Switch Input Control
multiInput:
Create a multiselect input control
noUiSliderInput:
Numeric range slider
numericInputIcon:
Create a numeric input control with icon(s)
numericRangeInput:
Numeric Range Input
pickerGroup-module:
Picker Group
pickerInput:
Select Picker Input Control
pickerOptions:
Options for 'pickerInput'
prepare_choices:
Prepare choices for 'virtualSelectInput()'
prettyCheckbox:
Pretty Checkbox Input
prettyCheckboxGroup:
Pretty Checkbox Group Input Control
prettyRadioButtons:
Pretty radio Buttons Input Control
prettySwitch:
Pretty Switch Input
prettyToggle:
Pretty Toggle Input
progress-bar:
Progress Bars
Browse all...
Select Picker Input Control
Description
An alternative to
selectInput
with plenty of options to customize it.
Usage
pickerInput(
inputId,
label = NULL,
choices,
selected = NULL,
multiple = FALSE,
options = list(),
choicesOpt = NULL,
width = NULL,
inline = FALSE
Arguments
inputId
The
input
slot that will be used to access the value.
label
Display label for the control, or
NULL
for no label.
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.
selected
The initially selected value (or multiple values if
multiple = TRUE
).
If not specified then defaults to the first value for single-select lists
and no values for multiple select lists.
multiple
Is selection of multiple items allowed?
options
List of options, see pickerOptions for all available options.
To limit the number of selection possible, see example below.
choicesOpt
Options for choices in the dropdown menu.
width
The width of the input : 'auto', 'fit', '100px', '75%'.
inline
Display picker inline, to have label and menu on same line use
width = "fit"
.
Value
A select control that can be added to a UI definition.
State of the picker (open or close) is accessible server-side through the input value:
input$<inputId>_open
, which can be
TRUE
(opened) or
FALSE
(closed).
References
SnapAppointments and contributors. "The jQuery plugin that brings
select elements into the 21st century with intuitive multiselection,
searching, and much more. Now with Bootstrap 4 support".
https://github.com/snapappointments/bootstrap-select/
See Also
updatePickerInput to update value server-side.
Examples
## Only run examples in interactive R sessions
if (interactive()) {
# You can run the gallery to see other examples
shinyWidgetsGallery()
# Basic usage
library("shiny")
library(shinyWidgets)
ui <- fluidPage(
pickerInput(
inputId = "somevalue",
label = "A label",
choices = c("a", "b")
verbatimTextOutput("value")
server <- function(input, output) {
output$value <- renderPrint(input$somevalue)
shinyApp(ui, server)
### Add actions box for selecting ----
### deselecting all options
if (interactive()) {
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
tags$h2("Select / Deselect all"),
pickerInput(
inputId = "p1",
label = "Select all option",
choices = rownames(mtcars),
multiple = TRUE,
options = list(`actions-box` = TRUE)
verbatimTextOutput("r1"),
br(),
pickerInput(
inputId = "p2",
label = "Select all option / custom text",
choices = rownames(mtcars),
multiple = TRUE,
options = list(
`actions-box` = TRUE,
`deselect-all-text` = "None...",
`select-all-text` = "Yeah, all !",
`none-selected-text` = "zero"
verbatimTextOutput("r2")
server <- function(input, output, session) {
output$r1 <- renderPrint(input$p1)
output$r2 <- renderPrint(input$p2)
shinyApp(ui = ui, server = server)
### Customize the values displayed in the box ----
if (interactive()) {
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
br(),
pickerInput(
inputId = "p1",
label = "Default",
multiple = TRUE,
choices = rownames(mtcars),
selected = rownames(mtcars)[1:5]
br(),
pickerInput(
inputId = "p1b",
label = "Default with | separator",
multiple = TRUE,
choices = rownames(mtcars),
selected = rownames(mtcars)[1:5],
options = list(`multiple-separator` = " | ")
br(),
pickerInput(
inputId = "p2",
label = "Static",
multiple = TRUE,
choices = rownames(mtcars),
selected = rownames(mtcars)[1:5],
options = list(`selected-text-format`= "static",
title = "Won't change")
br(),
pickerInput(
inputId = "p3",
label = "Count",
multiple = TRUE,
choices = rownames(mtcars),
selected = rownames(mtcars)[1:5],
options = list(`selected-text-format`= "count")
br(),
pickerInput(
inputId = "p3",
label = "Customize count",
multiple = TRUE,
choices = rownames(mtcars),
selected = rownames(mtcars)[1:5],
options = list(
`selected-text-format`= "count",
`count-selected-text` = "{0} models choosed (on a total of {1})"
server <- function(input, output, session) {
shinyApp(ui = ui, server = server)
### Limit the number of selections ----
if (interactive()) {
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
pickerInput(
inputId = "groups",
label = "Select one from each group below:",
choices = list(
Group1 = c("1", "2", "3", "4"),
Group2 = c("A", "B", "C", "D")
multiple = TRUE,
options = list("max-options-group" = 1)
verbatimTextOutput(outputId = "res_grp"),
pickerInput(
inputId = "groups_2",
label = "Select two from each group below:",
choices = list(
Group1 = c("1", "2", "3", "4"),
Group2 = c("A", "B", "C", "D")
multiple = TRUE,
options = list("max-options-group" = 2)
verbatimTextOutput(outputId = "res_grp_2"),
pickerInput(
inputId = "classic",
label = "Select max two option below:",
choices = c("A", "B", "C", "D"),
multiple = TRUE,
options = list(
"max-options" = 2,
"max-options-text" = "No more!"
verbatimTextOutput(outputId = "res_classic")
server <- function(input, output) {
output$res_grp <- renderPrint(input$groups)
output$res_grp_2 <- renderPrint(input$groups_2)
output$res_classic <- renderPrint(input$classic)
shinyApp(ui, server)