Skip to content

Instantly share code, notes, and snippets.

@wch
Last active September 8, 2023 20:25
Show Gist options
  • Star 45 You must be signed in to star a gist
  • Fork 19 You must be signed in to fork a gist
  • Save wch/4211337 to your computer and use it in GitHub Desktop.
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
Copy link

JRPTrad commented Nov 29, 2014

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

@revuel
Copy link

revuel commented Mar 11, 2015

Very usefull example, lots of thanks.

@yizhexu
Copy link

yizhexu commented Jul 1, 2015

Thank you! This is a really useful example!

@vluong
Copy link

vluong commented Nov 11, 2015

How can I see an example of this?

@LilianaPacheco
Copy link

Thank you!!!

@irenge
Copy link

irenge commented Apr 10, 2016

cool code

@jie-nissel
Copy link

Thank you!

Copy link

ghost commented Jul 26, 2016

i just needed this for my project

@tigregrr
Copy link

Thank you! Clean and useful code.

@Lorenagzp
Copy link

Very useful example, thank you!!

@SmritiSatyan
Copy link

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

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

@philibe
Copy link

philibe commented Nov 30, 2018

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