% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/inputs.R
\name{input_select}
\alias{input_select}
\alias{input_radiobuttons}
\alias{input_checkboxgroup}
\title{Create interactive control to select one (or more options) from a list.}
\usage{
input_select(choices, selected = NULL, multiple = FALSE, label = "",
  id = rand_id("select_"), map = identity, selectize = FALSE)

input_radiobuttons(choices, selected = NULL, label = "",
  id = rand_id("radio_"), map = identity)

input_checkboxgroup(choices, selected = NULL, label = "",
  id = rand_id("radio_"), map = identity)
}
\arguments{
\item{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.
This can also be a named list whose elements are (either named or
unnamed) lists or vectors. If this is the case, the outermost names
will be used as the "optgroup" label for the elements in the respective
sublist. This allows you to group and label similar choices. See the
example section for a small demo of this feature.}

\item{selected}{The initially selected value (or multiple values if
\code{multiple = TRUE}). If not specified then defaults to the first value
for single-select lists and no values for multiple select lists.}

\item{multiple}{Is selection of multiple items allowed?}

\item{label}{Display label for the control, or \code{NULL} for no label.}

\item{id}{A unique identifier for this input. Usually generated
automatically.}

\item{map}{A function with single argument \code{x}, the value of the
control on the client. Returns a modified value.}

\item{selectize}{Whether to use \pkg{selectize.js} or not.}
}
\description{
\itemize{
 \item \code{input_radiobuttons} only ever selects one value
 \item \code{input_checkboxgroup} can alway select multiple values
 \item \code{input_select} can select only one if \code{multiple = FALSE},
   otherwise the user can select multiple by using modifier keys
}
}
\examples{
# Dropdown
input_select(c("a", "b", "c"))
input_select(c("a", "b", "c"), multiple = TRUE)
input_select(c("a", "b", "c"), selected = "c")

# If you want to select variable names, you need to convert
# the output of the input to a name with map so that they get
# computed correctly
input_select(names(mtcars), map = as.name)

# Radio buttons
input_radiobuttons(choices = c("Linear" = "lm", "LOESS" = "loess"),
                   label = "Model type")
input_radiobuttons(choices = c("Linear" = "lm", "LOESS" = "loess"),
                   selected = "loess",
                   label = "Model type")

# Used in layer_model_predictions
mtcars \%>\% ggvis(~wt, ~mpg) \%>\%
  layer_model_predictions(model = input_radiobuttons(
    choices = c("Linear" = "lm", "LOESS" = "loess"),
    selected = "loess",
    label = "Model type"))

# Checkbox group
mtcars \%>\% ggvis(x = ~wt, y = ~mpg) \%>\%
  layer_points(
    fill := input_checkboxgroup(
      choices = c("Red" = "r", "Green" = "g", "Blue" = "b"),
      label = "Point color components",
      map = function(val) {
        rgb(0.8 * "r" \%in\% val, 0.8 * "g" \%in\% val, 0.8 * "b" \%in\% val)
      }
    )
  )
}
\seealso{
Other interactive input: \code{\link{input_checkbox}},
  \code{\link{input_slider}}, \code{\link{input_text}}
}
\concept{interactive input}
