100% found this document useful (1 vote)
235 views70 pages

Shiny Introduction

The document describes Olga Scrivner's Shiny application for data visualization, which uses the Shiny framework in R to create interactive web apps for data preparation, processing text with techniques like stopwords and stemming, and visualizing results through word clouds and topic modeling. The Shiny application provides an accessible way for data scientists to develop and share interactive visualizations without installation requirements.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
235 views70 pages

Shiny Introduction

The document describes Olga Scrivner's Shiny application for data visualization, which uses the Shiny framework in R to create interactive web apps for data preparation, processing text with techniques like stopwords and stemming, and visualizing results through word clouds and topic modeling. The Shiny application provides an accessible way for data scientists to develop and share interactive visualizations without installation requirements.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 70

Data Visualization:

Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Data Visualization: Shiny Application

Olga Scrivner
Data Visualization:
Outline Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

1. Introduction to web applications

2. Reactive Shiny and R framework

3. Shiny application demo - ITMS

4. Practice
Data Visualization:
Imperative Web Frameworks Shiny Application

Olga Scrivner

Web Framework

Shiny App
Traditional Model-View-Control
Practice Demo
Data Visualization:
Imperative Web Frameworks Shiny Application

Olga Scrivner

Web Framework

Shiny App
Traditional Model-View-Control
Practice Demo

The controller is essential and explicit: you have to specify


what to do when you receive user requests and what resources you
are going to mobilize to carry out the necessary tasks outlined in
the model (Ribeiro 2016)
Data Visualization:
Reactive Web Framework Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Reactive Systems are highly responsive, giving users


effective interactive feedback

http://www.reactivemanifesto.org/
http://littleactuary.github.io/blog/Web-application-framework-with-Shiny/
Data Visualization:
Reactive Architecture Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Reactive Framework and Data Science Shiny Application

Olga Scrivner

Web Framework
The impact of data scientists work depends on how well
Shiny App
others can understand their insights to take further actions Practice Demo

Benefit 1: Interactive display and manipulation of data

Benefit 2: No installation required

Benefit 3: Easy to develop and share with clients and


project teams

Benefit 4: Open source library

http://datascience.ibm.com/blog/shiny-a-data-scientist-best-friend/
Data Visualization:
Shiny Application Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
1. Shiny is an R package for building interactive web
applications
2. Open-Sourced by RStudio 11/2012 on CRAN
3. Uses web sockets (new HTTP):
I Interactive communication sessions between the users
browser and a server without having to poll the server
for a reply

4. Entirely extensible - custom input/output


Data Visualization:
R: Historical Background Shiny Application

Olga Scrivner

Web Framework
R - an implementation of S programming language Shiny App

Practice Demo

I In 1970s John Chambers, Rick Becker, and Allan Wilks


develop S and S+ at Bell Labs
I Bell System monopoly was broken up in 1982
I Late 80s some attempt to commercialize S/S+ but
already too many non-commercial implementations
I Ross Ihaka and Robert Gentleman produce R in early
1990s
Data Visualization:
Shiny Library Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

http://littleactuary.github.io/blog/Web-application-framework-with-Shiny/
Data Visualization:
Shiny Gallery - Get Inspired Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

https://www.rstudio.com/products/shiny/shiny-user-showcase/
Data Visualization:
Interactive Text Mining Suite (Scrivner et al. Shiny Application

2016) Olga Scrivner

Web Framework

1. Web application for text processing and mining Shiny App

Practice Demo

2. Interactive natural language processing techniques

I Wordstops, stemming, text-preprocessing

3. High customization
Data Visualization:
Accessibility Shiny Application

Olga Scrivner

Web Framework
I PC, Mac, Linux, Smart Phones Shiny App

Practice Demo
I Chrome, Firefox, Safari

I ITMS Web site:

http://www.interactivetextminingsuite.com
Data Visualization:
ITMS Structure Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

1. File Uploads
I Upload files (txt, pdf, rdf, Google books API)

2. Data Preparation
I Data preprocessing (stopwords, stemming, metadata)

3. Data Visualization
I Word frequencies, cluster analysis, topic modeling
Data Visualization:
Stopwords Shiny Application

Olga Scrivner

Stopwords (e.g. the, and): Web Framework

Shiny App

Practice Demo
Data Visualization:
Manual Removal of Stopwords Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Stemming Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Word Cloud Representation Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Customization Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Topic Modeling Shiny Application

Olga Scrivner

Web Framework
Discovering underlying theme of collection from Science magazine Shiny App
1990-2000 (Blei 2012) Practice Demo

I LDA (Latent Dirichlet allocation)


I STM (Structural Topic model)
I Chronological topic visualization (lda): requires
metadata
Data Visualization:
Topic Modeling Tuning Shiny Application

Olga Scrivner

Web Framework
I Selection of topics (how many different themes)
Shiny App

I Selection of words per theme (how many words per Practice Demo

topic)

I Selection of iteration
Data Visualization:
Using Google Books API Shiny Application

Olga Scrivner

Select your search terms and submit Web Framework

Shiny App

Practice Demo

Current limitation is 40 books


Data Visualization:
Workshop Materials Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

1. Rstudio

2. R

3. Shiny library

4. Some ideas are from http://deanattali.com/blog/


building-shiny-apps-tutorial/
Data Visualization:
R software Shiny Application

Olga Scrivner

Web Framework

Shiny App
R is a free software for data analysis, text mining and
Practice Demo
visualization.
To install R on Window:
1. Download the binary file for R
https://cran.r-project.org/bin/windows/base/
R-3.3.1-win.exe
2. Open the downloaded .exe file and Install R
To install R on Mac:
1. Download the appropriate version of .pkg file
https://cran.r-project.org/bin/macosx/
2. Open the downloaded .pkg file and Install R
Data Visualization:
R Studio Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

RStudio is a free user interface for R.

1. Install the appropriate RStudio version https:


//www.rstudio.com/products/rstudio/download/
2. Run it to install R-studio
Data Visualization:
R Studio Structure Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Installing Packages Shiny Application

Olga Scrivner

Web Framework

Shiny App

In your bottom left window - go to Packages Practice Demo


Data Visualization:
Selecting Packages - shiny Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Creating Scripts Shiny Application

Olga Scrivner

Web Framework
Create R File: File New File R Script Shiny App

Practice Demo
Data Visualization:
Execution - RUN Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
To execute your commands you need to click run

Type in the script and run:

library(shiny)
Data Visualization:
Shiny Demo Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
runExample("01 hello")
Data Visualization:
Shiny Demo Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Shiny Demo Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
UI.R Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Reactive Input/Output Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

I Input - things user can toggle


I Output - R objects that user can see, often depend on
inputs
Data Visualization:
Closing App Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Step 1 - Create New Web Shiny App Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Step 2 - Run App Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
UI Shiny Application

Olga Scrivner

shinyUI(fluidPage( Web Framework


# Application title Shiny App
titlePanel("Old Faithful Geyser Data"), Practice Demo

# Sidebar with a slider input for number of bins


sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
),
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot")
)
)
Data Visualization:
Modifying UI - Practice Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

1. Change Title

2. Change Bins values: min, max and value

3. Save

4. RunApp
Data Visualization:
HTML Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
The UI script simply creates HTML
Data Visualization:
HTML Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
HTML tags:

http:
//shiny.rstudio.com/articles/tag-glossary.html

I h1() = header1
I br() = line break
I p() = paragraph
I hr() = line
Data Visualization:
Adding HTML Tag to UI.R - Practice Shiny Application

Olga Scrivner

shinyUI(fluidPage( Web Framework


# Application title Shiny App
titlePanel("My Title"), Practice Demo

h3("My subtitle"),
p("This is my first app!"),
br(),
hr(),
Data Visualization:
Adding HTML Tag to UI.R - Practice Shiny Application

Olga Scrivner

shinyUI(fluidPage( Web Framework


# Application title Shiny App
titlePanel("My Title"), Practice Demo

h3("My subtitle"),
p("This is my first app!"),
br(),
hr(),
RunApp
Data Visualization:
Layout Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

http:
//shiny.rstudio.com/articles/layout-guide.html
Data Visualization:
mainPanel Shiny Application

Olga Scrivner

Web Framework
mainPanel( plotOutput(distPlot)) Shiny App

Practice Demo
Lets add 3 tab panels: Plot, Summary, Tabel
Data Visualization:
tabsetPanel Shiny Application

Olga Scrivner

Web Framework
mainPanel(
Shiny App
tabsetPanel( Practice Demo
tabPanel("Plot", plotOutput("distPlot")),
tabPanel("Summary"),
tabPanel("Table")
)
)
Data Visualization:
tabsetPanel Shiny Application

Olga Scrivner

Web Framework
mainPanel(
Shiny App
tabsetPanel( Practice Demo
tabPanel("Plot", plotOutput("distPlot")),
tabPanel("Summary"),
tabPanel("Table")
)
)
Data Visualization:
Input Data Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Input Data Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

1. Blog https:
//languagevariationsuite.wordpress.com/
2. Download csv file - movie metadata.csv
3. Place this file into the directory myshiny
Data Visualization:
New Input in UI.R Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

We will add fileInput function inside sidebarPanel:


NB: commas are important!

sidebarPanel(
sliderInput(.......),
fileInput()
)
Data Visualization:
New Input in UI.R Shiny Application

Olga Scrivner

Web Framework

fileInput(file1, Choose CSV File, Shiny App

Practice Demo
multiple=FALSE,
accept=c(text/csv,
text/comma-separated-values,text/plain,
.csv)
)
Data Visualization:
Reactive Function in Sever.R Shiny Application

Olga Scrivner

Web Framework

Shiny App
myfile <- reactive({ Practice Demo

if (is.null(input$file1)){return()}
mydata <- read.csv(input$file1$datapath,
header=TRUE, sep=,)
return(mydata)
})

To use reactive data we will pass myfile() content to output


functions
Data Visualization:
New Output Function summary in Server.R Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

output$summary <- renderPrint({

summary(myfile())

})
Data Visualization:
New Output Function table in Server.R Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

output$table <- renderDataTable({

myfile()

})
Data Visualization:
Linking summary and table with UI.R Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

tabsetPanel(

tabPanel("Plot", plotOutput("distPlot")),

tabPanel("Summary", verbatimTextOutput("summary")),

tabPanel("Table", dataTableOutput("table"))
)
Data Visualization:
Linking summary and table with UI.R Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

tabsetPanel(

tabPanel("Plot", plotOutput("distPlot")),

tabPanel("Summary", verbatimTextOutput("summary")),

tabPanel("Table", dataTableOutput("table"))
)

RunApp
Data Visualization:
Testing CSV Upload Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
One more IF-Statement - Server.R Shiny Application

Olga Scrivner
We want to do a histogram for csv file:
Web Framework
if (condition) {do..} else {do...} Shiny App

Practice Demo
Data Visualization:
One more IF-Statement - Server.R Shiny Application

Olga Scrivner
We want to do a histogram for csv file:
Web Framework
if (condition) {do..} else {do...} Shiny App

output$distPlot <- renderPlot({ Practice Demo

if (is.null(input$file1)) {
....
hist(x, breaks = bins, col = darkgray, border =
white)
}
Data Visualization:
One more IF-Statement - Server.R Shiny Application

Olga Scrivner
We want to do a histogram for csv file:
Web Framework
if (condition) {do..} else {do...} Shiny App

output$distPlot <- renderPlot({ Practice Demo

if (is.null(input$file1)) {
....
hist(x, breaks = bins, col = darkgray, border =
white)
}
else{
x <- myfile()$budget
bins <- seq(min(x), max(x), length.out = input$bins
+ 1)
hist(x, breaks = bins, col=red,
main = My New Histogram)
}
})
Data Visualization:
RunApp Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Deployment Options Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

1. Share server.r and ui.r


2. Host on shinyapps.io
3. Host on Shiny server
Data Visualization:
Deploy with shinyapps.io Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
I www.shinyapps.io
I sign up for an account.
I Publish Application button in RStudio and follow
instructions
Data Visualization:
Deploy with shinyapps.io Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
My shinyapps.io Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
My shinyapps.io Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
Data Visualization:
Useful resources Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo
1. Shiny official tutorial -
http://shiny.rstudio.com/tutorial
2. Cheat sheet - http://shiny.rstudio.com/images/
shiny-cheatsheet.pdf
3. Publish your app free - http://www.shinyapps.io
4. Examples -http://www.showmeshiny.com/
5. Tutorial by Dean Attali - http://deanattali.com/
blog/building-shiny-apps-tutorial/
Data Visualization:
Thank you! Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

My email: obscrivn@indiana.edu
Data Visualization:
Credits Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

https://github.com/IBMDataScience/dsx-shiny-apps
http://www.slideshare.net/SarahAerni/
data-science-as-a-commodity-use-madlib-r-other-oss-tools-for-data-
http://www.unixstickers.com/image/data/stickers/
react/badge/React-JS.sh.png
https://github.com/rstudio/shiny/issues/250
http://www.slideshare.net/ilio-catallo/
spring-mvc-the-basics

You might also like