Create a dropdown menu
dropdown(
...,
style = "default",
status = "default",
size = "md",
icon = NULL,
label = NULL,
tooltip = FALSE,
right = FALSE,
up = FALSE,
width = NULL,
animate = FALSE,
inputId = NULL,
block = FALSE,
no_outline = TRUE
)List of tag to be displayed into the dropdown menu.
Style of the button, to choose between simple, bordered,
minimal, stretch, jelly, gradient, fill,
material-circle, material-flat, pill, float, unite.
Color of the button, see actionBttn().
Size of the button : xs,sm, md, lg.
An optional icon to appear on the button.
The contents of the button, usually a text label.
Put a tooltip on the button, you can customize tooltip with tooltipOptions().
Logical. The dropdown menu starts on the right.
Logical. Display the dropdown menu above.
Width of the dropdown menu content.
Add animation on the dropdown, can be logical or result of animateOptions().
Optional, id for the button, the button act like an actionButton,
and you can use the id to toggle the dropdown menu server-side.
Logical, full width button.
Logical, don't show outline when navigating with keyboard/interact using mouse or touch.
This function is similar to dropdownButton() but don't use Bootstrap, so you can use pickerInput() in it.
Moreover you can add animations on the appearance / disappearance of the dropdown with animate.css.
dropMenu() for a more robust alternative.
## Only run examples in interactive R sessions
if (interactive()) {
library("shiny")
library("shinyWidgets")
ui <- fluidPage(
tags$h2("pickerInput in dropdown"),
br(),
dropdown(
tags$h3("List of Input"),
pickerInput(inputId = 'xcol2',
label = 'X Variable',
choices = names(iris),
options = list(`style` = "btn-info")),
pickerInput(inputId = 'ycol2',
label = 'Y Variable',
choices = names(iris),
selected = names(iris)[[2]],
options = list(`style` = "btn-warning")),
sliderInput(inputId = 'clusters2',
label = 'Cluster count',
value = 3,
min = 1, max = 9),
style = "unite", icon = icon("gear"),
status = "danger", width = "300px",
animate = animateOptions(
enter = animations$fading_entrances$fadeInLeftBig,
exit = animations$fading_exits$fadeOutRightBig
)
),
plotOutput(outputId = 'plot2')
)
server <- function(input, output, session) {
selectedData2 <- reactive({
iris[, c(input$xcol2, input$ycol2)]
})
clusters2 <- reactive({
kmeans(selectedData2(), input$clusters2)
})
output$plot2 <- renderPlot({
palette(c("#E41A1C", "#377EB8", "#4DAF4A",
"#984EA3", "#FF7F00", "#FFFF33",
"#A65628", "#F781BF", "#999999"))
par(mar = c(5.1, 4.1, 0, 1))
plot(selectedData2(),
col = clusters2()$cluster,
pch = 20, cex = 3)
points(clusters2()$centers, pch = 4, cex = 4, lwd = 4)
})
}
shinyApp(ui = ui, server = server)
}