Lab 3 - Interactive data filtering and aggregation with shiny

General Lab Instructions


  • Ensure your lab meets these basic lab requirements:
  • Ensure that the low-level flow of your writing is appropriate, with full sentences and using proper English, spelling, and grammar.
  • Ensure that the high-level structure of your solution is clear and thorough for each answer, with a well-thought-out organization of concepts that avoids repetition.
  • This assignment is to be completed in R, submitting both a .Rmd markdown file you create in RStudio (you can add your answers directly to this one) along with a rendered .md AND .pdf file.
  • Ensure that your markdown submission as a whole is easy to read: use appropriate formatting that clearly distinguishes between our questions and your answer, between different sub-parts of your answer, and has visible differences between code and English.

Exercise 1 - Build an interactive shiny app.


  • Create an interactive shiny app with the provided College Scorecard dataset from the US Board of Education, allowing the user to explore this dataset with the intent of identifying which attributes are predictors of educational success or failure. See the oversized_datasets lab3data folder for the larger datasets.

  • The app should:

    • have at least one widget (slider, dropdown box, tick boxes)
    • have multiple linked views
    • incorporate some aspect of data filtering/selecting
    • incorporate some aspect of data aggregation
  • Your interface should be as self-documenting as possible, with appropriate labels for panes and widgets, a legend documenting the meaning of visual encodings, and a meaningful title for the app.

  • Your writeup should include the rationale for your design choices, focusing on the interaction aspects and connecting these choices to a data abstraction (including a characterization of the raw data types, and of any derived data that you decide compute) and the task abstraction (including a more detailed breakdown of tasks that arise from the goal stated above). You should also concisely describe your visual encoding choices.

Your goal is not to fully complete the analysis yourself and draw conclusions about the data, it's to build a tool that would allow somebody else to do such an analysis. Your job is to think about how to build such a tool and to provide explicit arguments of why your visualization design choices are a reasonable solution. You might do some analysis along the way to convince yourself and to demonstrate that you've made reasonable choices, but the analysis itself is not the subject of the marking.

Also note that you need not make a "masterpiece" -- the goal is the use the time you have available this week to create a compelling app. No need to go overboard.