Google Summer of Code
What I did last summer. Oh no winter!
Student Developer: Sayani Gupta
Mentors: Antony Unwin and Dianne Cook
Official Project Link: gravitas
Introduction
Project gravitas aims to provide methods to operate on time in an automated way, to deconstruct it in many different ways. Deconstructions of time that respect the linear progression of time like days, weeks and months are defined as linear time granularities and those that accommodate for periodicities in time like hour of the day or day of the month are defined as circular granularities or calendar categorizations. Often visualizing data across these circular granularities are a way to go when we want to explore periodicities, pattern or anomalies in the data. Also, because of the large volume of data in recent days, using probability distributions for display is a potentially useful approach.The project will provide these techniques into the tidy workflow, so that probability distributions can be examined in the range of graphics available in the ggplot2 package.
Main contributions of this project
Functions to create multiple-order-up time granularities. This is an extension to the lubridate package, which allows for the creation of some calendar categorizations, usually single-order-up.
Checks on the feasibility of creating plots or drawing inferences from two granularities together. Pairs of granularities can be categorized as either a harmony or clash, where harmonies are pairs of granularities that aid exploratory data analysis, and clashes are pairs that are incompatible with each other for exploratory analysis.
Contributions during GSoC
The main objectives for project gravitas consisted of four parts:
- R Package: Develop an R package consisting of modules BUILD and COMPATIBLE.
The R package can be accessed from CRAN or using:
install.packages("devtools")
devtools::install_github("Sayani07/gravitas")
- Shiny UI: Develop an user interface using RShiny to enable user to walk through different modules of the package.
This can be accessed using:
library(gravitas)
gravitas::run_app()
Summary
We have completed almost all goals that we had in the proposal. We were also able to accomodate new features for the Shiny App, which were not intially discussed but were made along the way. The way ahead is to make this package more robust so that it can facilitate manipulation of a large number of R data structures and run computations and explorations on them.