-
Notifications
You must be signed in to change notification settings - Fork 9
Architecture
R is an open source language and environment for statistical computing and graphics that provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, …) and graphical techniques, and is highly extensible.
One of R’s strengths is the ease with which well-designed visualizations and publication-quality plots can be produced, including mathematical symbols and formulae where needed. The Data INCITE program at Rensselaer Polytechnic Institue uses R as the basis for several courses, including Intro to Data Math, Data Analytics Research Lab and Health Analytics Challenge Lab; R also is the data analytics core of many research projects at Rensselaer.
R is available as Free Software under the terms of the Free Software Foundation’s GNU General Public License in source code form. It compiles and runs on a wide variety of UNIX platforms and similar systems (including FreeBSD and Linux), Windows and MacOS. For more information about R, refer to the R Project web site.
MORTALITYMINDER was developed using R version 3.6.0 (2019-04-26), running on CentOS 7.
Shiny is an open source R package that provides an elegant and powerful web framework for building web applications using R. Shiny is a framework for turning analyses into interactive web applications without requiring extensive HTML, CSS, or JavaScript knowledge. Shiny does allow Shiny app developers to extend apps with CSS themes, htmlwidgets, and JavaScript actions, capabilities that the MORTALITYMINDER team took full advantage of.
MORTALITYMINDER was deployed using R Shiny Server () on a CentOS 7 virtual server at https://mortalityminder.idea.rpi.edu/. For redundancy and to demonstrate compatibility with other hosting alternatives, MORTALITYMINDER has also been deployed "in the Cloud" at https://olyerickson.shinyapps.io/mortalityminder/
Discuss e.g. CDC WONDER selection and download; CHR selection and download
Before carrying out analysis and corresponding data visualization, we need to use loaders to transform the raw data files first. There are several reasons for doing this instead of importing the raw data files directly:
- Common factors or identifiers, e.g. county names, have to have the same string representations as well as the same data types.
- Missing values should be either removed or imputed.
- Not all of the social determinants data are relevant. So some filtering operations, either by algorithm or by hand, are needed.
For more information, please refer to the Data Preparation section below.
R Shiny applications have two
R shiny package provides tag function that allows users to manipulate HTML objects directly. So we can have CSS files and javascript files to style it just like normal web development. We have 4 pages in total that show 3 different perspectives of the analysis: national wide view, state view, and factor view. Users will see one page at a time and slide to the next page by clicking the right arrow. Each page is divided into three columns.
We choose to use Shiny largely because Shiny has built-in support for interacting with static plots generated by R. By choosing State and Cause of Death on the top navigation bar, Users can see the related plots change to different states or different rates according to the choice. Some plots itself are interactive. We can choose different counties and social determinants by clicking on the map and the correlation plot, and other related plots will rerender accordingly as well.
This is all done in Shiny! Every Shiny App is consist of two parts: UI and server. The server part is where application logic lives. The server has two arguments input and output. Shiny uses reactive programming, so output will react to changes in input. We pass values that users can change, such as state cause of death, as input variables to server. Whenever the value of input variables change, anything that relies on the value is re-evaluated.
This is a javascript library that creates fullscreen scrolling websites. MortalityMinder is based on landscape sliders functions of the package.
