Skip to content

Instantly share code, notes, and snippets.

@mbannert
Last active June 2, 2016 09:51
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mbannert/9124890 to your computer and use it in GitHub Desktop.
Save mbannert/9124890 to your computer and use it in GitHub Desktop.
data_sets <- c("mtcars")
shinyServer(function(input, output) {
# Drop-down selection box for which data set
output$choose_dataset <- renderUI({
selectInput("dataset", "Data set", as.list(data_sets))
})
# select a car
output$choose_car <- renderUI({
selectInput("car","car",as.list(rownames(get(input$dataset))))
})
# 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$radar <- renderPlot({
source("radar.R")
webplot(get(input$dataset),
which(rownames(mtcars) == input$car), y.cols = input$columns,add=F)
})
# 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("Car Comparison Radar"),
sidebarPanel(
uiOutput("choose_dataset"),
uiOutput("choose_car"),
uiOutput("choose_columns"),
br(),
a(href = "http://statisticstoproveanything.blogspot.de/2013/11/spider-web-plots-in-r.html",
"Radar by Alan Vaughn from statisticstoproveanything"),
br(),
a(href = "https://gist.github.com/mbannert/9124890/",
"Find the shiny code gist here.")
),
mainPanel(
plotOutput(outputId = "radar", height = "600px"),
tableOutput("data_table")
)
))
@tts
Copy link

tts commented May 27, 2014

Your app works fine but this code throws me an error on "get(input$dataset)". Do you run this code exactly at glimmer?

@tts
Copy link

tts commented May 27, 2014

Sorry, my mistake/misunderstanding. Errors were warnings, and the radar chart do pops up. Case closed, and thanks for sharing!

Copy link

ghost commented Jun 12, 2014

hi, tts! I'm having the same problem you had at first. It throws me some errors:
Error in get(input$dataset) : invalid first argument
Warning in file(filename, "r", encoding = encoding) :
cannot open file 'radar.R': No such file or directory
Error in file(filename, "r", encoding = encoding) :
cannot open the connection
Warning in file(filename, "r", encoding = encoding) :
cannot open file 'radar.R': No such file or directory
Error in file(filename, "r", encoding = encoding) :
cannot open the connection

Would you give me a hint how you fixed this? Thanks!!

Copy link

ghost commented Jun 12, 2014

Okay, I got it. I just had to run together the webplot function available at: http://statisticstoproveanything.blogspot.de/2013/11/spider-web-plots-in-r.html

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