Learn R Programming

shinyWidgets (version 0.4.3)

dropdown: Dropdown

Description

Create a dropdown menu

Usage

dropdown(..., style = "default", status = "default", size = "md",
  icon = NULL, label = NULL, tooltip = FALSE, right = FALSE,
  up = FALSE, width = NULL, animate = FALSE, inputId = NULL)

Arguments

...

List of tag to be displayed into the dropdown menu.

style

Character. if default use Bootstrap button (like an actionButton), else use an actionBttn, see argument style for possible values.

status

Add a class to the buttons, you can use Bootstrap status like 'info', 'primary', 'danger', 'warning' or 'success'. Or use an arbitrary strings to add a custom class, e.g. : with status = 'myClass', buttons will have class btn-myClass.

size

Size of the button : default, lg, sm, xs.

icon

An icon to appear on the button.

label

Label to appear on the button. If circle = TRUE and tooltip = TRUE, label is used in tooltip.

tooltip

Put a tooltip on the button, you can customize tooltip with tooltipOptions.

right

Logical. The dropdown menu starts on the right.

up

Logical. Display the dropdown menu above.

width

Width of the dropdown menu content.

animate

Add animation on the dropdown, can be logical or result of animateOptions.

inputId

Optional, id for the button, the button act like an actionButton, and you can use the id to toggle the dropdown menu server-side. If set button will have id 'sw-btn-inputId'.

Details

This function is similar to dropdownButton but don't use Boostrap, so you can put pickerInput in it. Moreover you can add animations on the appearance / disappearance of the dropdown with animate.css.

See Also

animateOptions for animation, tooltipOptions for tooltip and actionBttn for the button.

Examples

Run this code
# NOT RUN {
## 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)

}
# }

Run the code above in your browser using DataLab