Shiny GEM

Getting started

Shiny GEM is a web app built using Rstudio’s Shiny framework. ‘GEM’ stands for ‘general exploratory methods’, as this app aims to simplify a variety of basic EDA tasks.

Shiny GEM makes use of the following R packages:

pkgs <- c('shiny',

install.packages(pkgs, dependencies=TRUE)

Note that shinyCustom is not on CRAN; install it with:


To run locally, install each of the above packages and run:

shiny::runGitHub('Shiny-GEM', 'dm3ll3n')`


The app is contained in one page consisting of six segments:

  • Load & Transform

‘Load & Transform’ is where users can specify or upload the dataset to analyze, and perform the usual tasks to ‘tidy’ the data, including dropping, renaming, combining, or splitting columns, as well as reshaping the dataset from a wide to long format (i.e., “melting”).

  • Source Dataset

The ‘Source Dataset’ pane shows the dataset after the applied modifications have been made. Using the DT (DataTables) package, users can apply filters to columns, and these filters take effect down-stream. Users can also download the transformed / filtered dataset.

  • Grouping

The ‘Grouping’ pane is primarily used to map any of the four major columns (date, group, feature, value) to columns from the filtered ‘source dataset’. This is also where the user can filter and transform values in the ‘date’ column and specify an aggregation function.

  • Grouped Dataset

The ‘Grouped Dataset’ pane shows the results of the source dataset after defining the groups, filters, and aggregation in the ‘Grouping’ pane. The dataset shown here is what is passed on to the plotting functions, and as with the source dataset, the ‘grouped’ dataset can also be filtered by column.

  • Plot Options

This pane allows users to tweak many aesthetic properties of the plot, including labels, limits, theme, colors, and legend position.

  • Plot Output

The ‘Plot Output’ pane shows the plots that result from plotting the ‘grouped’ dataset. Users can select from four tabs (Composition, Trends, Distribution, Feature Pairs), with each tab offering a variety of “geoms” with which to represent the data.