Skip to content

Instantly share code, notes, and snippets.

@wch
Last active September 8, 2023 20:25
Show Gist options
  • Select an option

  • Save wch/4211337 to your computer and use it in GitHub Desktop.

Select an option

Save wch/4211337 to your computer and use it in GitHub Desktop.
Shiny example: dynamic input fields
data_sets <- c("mtcars", "morley", "rock")
shinyServer(function(input, output) {
# Drop-down selection box for which data set
output$choose_dataset <- renderUI({
selectInput("dataset", "Data set", as.list(data_sets))
})
# Check boxes
output$choose_columns <- renderUI({
# If missing input, return to avoid error later in function
if(is.null(input$dataset))
return()
# Get the data set with the appropriate name
dat <- get(input$dataset)
colnames <- names(dat)
# Create the checkboxes and select them all by default
checkboxGroupInput("columns", "Choose columns",
choices = colnames,
selected = colnames)
})
# Output the data
output$data_table <- renderTable({
# If missing input, return to avoid error later in function
if(is.null(input$dataset))
return()
# Get the data set
dat <- get(input$dataset)
# Make sure columns are correct for data set (when data set changes, the
# columns will initially be for the previous data set)
if (is.null(input$columns) || !(input$columns %in% names(dat)))
return()
# Keep the selected columns
dat <- dat[, input$columns, drop = FALSE]
# Return first 20 rows
head(dat, 20)
})
})
shinyUI(pageWithSidebar(
headerPanel(""),
sidebarPanel(
uiOutput("choose_dataset"),
uiOutput("choose_columns"),
br(),
a(href = "https://gist.github.com/4211337", "Source code")
),
mainPanel(
tableOutput("data_table")
)
))
@JRPTrad

JRPTrad commented Nov 29, 2014

Copy link
Copy Markdown

Thanks, great code btw! Is this possible to extend so that it can be used with GoogleVis Charts by any chance?

@revuel

revuel commented Mar 11, 2015

Copy link
Copy Markdown

Very usefull example, lots of thanks.

@yizhexu

yizhexu commented Jul 1, 2015

Copy link
Copy Markdown

Thank you! This is a really useful example!

@vluong

vluong commented Nov 11, 2015

Copy link
Copy Markdown

How can I see an example of this?

@LilianaPacheco

Copy link
Copy Markdown

Thank you!!!

@irenge

irenge commented Apr 10, 2016

Copy link
Copy Markdown

cool code

@jie-nissel

Copy link
Copy Markdown

Thank you!

ghost commented Jul 26, 2016

Copy link
Copy Markdown

i just needed this for my project

@tigregrr

Copy link
Copy Markdown

Thank you! Clean and useful code.

@Lorenagzp

Copy link
Copy Markdown

Very useful example, thank you!!

@SmritiSatyan

Copy link
Copy Markdown

could you show an example where plots are rendered, rather than tables? it will be great. i have done something similar to this, but when i unselect the first checkbox, i get errors. my code only works when the first checkbox is mandatorily selected and others are checked/unchecked

@ankit-dargad

Copy link
Copy Markdown

@SmritiSatyan: I am looking for similar thing. Did you get the solution?

@philibe

philibe commented Nov 30, 2018

Copy link
Copy Markdown

I searched "dynamic query ui shiny" and I've found this useful code. Thanks. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment