data visualization: shiny applicationcl.indiana.edu/~obscrivn/shiny-introduction.pdf · data...

70
Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Data Visualization: Shiny Application Olga Scrivner

Upload: vanliem

Post on 24-Feb-2018

262 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Data Visualization: Shiny Application

Olga Scrivner

Page 2: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Outline

1. Introduction to web applications

2. Reactive Shiny and R framework

3. Shiny application demo - ITMS

4. Practice

Page 3: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Imperative Web Frameworks

Traditional Model-View-Control

“The controller is essential and explicit: you have to specifywhat to do when you receive user requests and what resources youare going to mobilize to carry out the necessary tasks outlined inthe model” (Ribeiro 2016)

Page 4: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Imperative Web Frameworks

Traditional Model-View-Control

“The controller is essential and explicit: you have to specifywhat to do when you receive user requests and what resources youare going to mobilize to carry out the necessary tasks outlined inthe model” (Ribeiro 2016)

Page 5: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Reactive Web Framework

“Reactive Systems are highly responsive, giving userseffective interactive feedback”

http://www.reactivemanifesto.org/

http://littleactuary.github.io/blog/Web-application-framework-with-Shiny/

Page 6: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Reactive Architecture

Page 7: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Reactive Framework and Data Science

“The impact of data scientists’ work depends on how wellothers can understand their insights to take further actions”

Benefit 1: Interactive display and manipulation of data

Benefit 2: No installation required

Benefit 3: Easy to develop and share with clients andproject teams

Benefit 4: Open source library

http://datascience.ibm.com/blog/shiny-a-data-scientist-best-friend/

Page 8: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Shiny Application

1. Shiny is an R package for building interactive webapplications

2. Open-Sourced by RStudio 11/2012 on CRAN

3. Uses web sockets (new HTTP):

I Interactive communication sessions between the user’sbrowser and a server without having to poll the serverfor a reply

4. Entirely extensible - custom input/output

Page 9: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

R: Historical Background

R - an implementation of S programming language

I In 1970s John Chambers, Rick Becker, and Allan Wilksdevelop S and S+ at Bell Labs

I Bell System monopoly was broken up in 1982

I Late 80s some attempt to commercialize S/S+ butalready too many non-commercial implementations

I Ross Ihaka and Robert Gentleman produce R in early1990s

Page 10: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Shiny Library

http://littleactuary.github.io/blog/Web-application-framework-with-Shiny/

Page 11: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Shiny Gallery - Get Inspired

https://www.rstudio.com/products/shiny/shiny-user-showcase/

Page 12: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Interactive Text Mining Suite (Scrivner et al.2016)

1. Web application for text processing and mining

2. Interactive natural language processing techniques

I Wordstops, stemming, text-preprocessing

3. High customization

Page 13: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Accessibility

I PC, Mac, Linux, Smart Phones

I Chrome, Firefox, Safari

I ITMS Web site:

http://www.interactivetextminingsuite.com

Page 14: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

ITMS Structure

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

Page 15: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Stopwords

Stopwords (e.g. the, and):

Page 16: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Manual Removal of Stopwords

Page 17: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Stemming

Page 18: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Word Cloud Representation

Page 19: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Customization

Page 20: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Topic Modeling

Discovering underlying theme of collection from Science magazine1990-2000 (Blei 2012)

I LDA (Latent Dirichlet allocation)

I STM (Structural Topic model)

I Chronological topic visualization (lda): requiresmetadata

Page 21: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Topic Modeling Tuning

I Selection of topics (how many different themes)

I Selection of words per theme (how many words pertopic)

I Selection of iteration

Page 22: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Using Google Books API

Select your search terms and submit

Current limitation is 40 books

Page 23: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Workshop Materials

1. Rstudio

2. R

3. Shiny library

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

building-shiny-apps-tutorial/

Page 24: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

R software

R is a free software for data analysis, text mining andvisualization.

To install R on Window:

1. Download the binary file for Rhttps://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 filehttps://cran.r-project.org/bin/macosx/

2. Open the downloaded .pkg file and Install R

Page 25: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

R Studio

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

Page 26: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

R Studio Structure

Page 27: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Installing Packages

In your bottom left window - go to Packages

Page 28: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Selecting Packages - shiny

Page 29: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Creating Scripts

Create R File: File → New File → R Script

Page 30: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Execution - RUN

To execute your commands you need to click run

Type in the script and run:

library(shiny)

Page 31: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Shiny Demo

runExample("01 hello")

Page 32: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Shiny Demo

Page 33: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Shiny Demo

Page 34: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

UI.R

Page 35: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Reactive Input/Output

I Input - things user can toggle

I Output - R objects that user can see, often depend oninputs

Page 36: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Closing App

Page 37: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Step 1 - Create New Web Shiny App

Page 38: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Step 2 - Run App

Page 39: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

UI

shinyUI(fluidPage(

# Application title

titlePanel("Old Faithful Geyser Data"),

# 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")

)

)

))

Page 40: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Modifying UI - Practice

1. Change Title

2. Change Bins values: min, max and value

3. Save

4. RunApp

Page 41: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

HTML

The UI script simply creates HTML

Page 42: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

HTML

HTML tags:

http:

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

I h1() = header1

I br() = line break

I p() = paragraph

I hr() = line

Page 43: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Adding HTML Tag to UI.R - Practice

shinyUI(fluidPage(

# Application title

titlePanel("My Title"),

h3("My subtitle"),

p("This is my first app!"),

br(),

hr(),

RunApp

Page 44: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Adding HTML Tag to UI.R - Practice

shinyUI(fluidPage(

# Application title

titlePanel("My Title"),

h3("My subtitle"),

p("This is my first app!"),

br(),

hr(),

RunApp

Page 45: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Layout

http:

//shiny.rstudio.com/articles/layout-guide.html

Page 46: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

mainPanel

mainPanel( plotOutput(”distPlot”))

Let’s add 3 tab panels: Plot, Summary, Tabel

Page 47: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

tabsetPanel

mainPanel(

tabsetPanel(

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

tabPanel("Summary"),

tabPanel("Table")

)

)

Page 48: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

tabsetPanel

mainPanel(

tabsetPanel(

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

tabPanel("Summary"),

tabPanel("Table")

)

)

Page 49: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Input Data

Page 50: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Input Data

1. Blog https:

//languagevariationsuite.wordpress.com/

2. Download csv file - movie metadata.csv

3. Place this file into the directory myshiny

Page 51: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

New Input in UI.R

We will add fileInput function inside sidebarPanel:NB: commas are important!

sidebarPanel(sliderInput(.......),fileInput()

)

Page 52: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

New Input in UI.R

fileInput(’file1’, ’Choose CSV File’,

multiple=FALSE,

accept=c(’text/csv’,

’text/comma-separated-values,text/plain’,

’.csv’)

)

Page 53: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Reactive Function in Sever.R

myfile <- reactive({

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 outputfunctions

Page 54: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

New Output Function summary in Server.R

output$summary <- renderPrint({

summary(myfile())

})

Page 55: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

New Output Function table in Server.R

output$table <- renderDataTable({

myfile()

})

Page 56: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Linking summary and table with UI.R

tabsetPanel(

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

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

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

)

RunApp

Page 57: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Linking summary and table with UI.R

tabsetPanel(

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

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

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

)

RunApp

Page 58: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Testing CSV Upload

Page 59: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

One more IF-Statement - Server.R

We want to do a histogram for csv file:

if (condition) {do..} else {do...}

output$distPlot <- renderPlot({

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’)

}

})

Page 60: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

One more IF-Statement - Server.R

We want to do a histogram for csv file:

if (condition) {do..} else {do...}output$distPlot <- renderPlot({

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’)

}

})

Page 61: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

One more IF-Statement - Server.R

We want to do a histogram for csv file:

if (condition) {do..} else {do...}output$distPlot <- renderPlot({

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’)

}

})

Page 62: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

RunApp

Page 63: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Deployment Options

1. Share server.r and ui.r

2. Host on shinyapps.io

3. Host on Shiny server

Page 64: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Deploy with shinyapps.io

I www.shinyapps.io

I sign up for an account.

I Publish Application button in RStudio and followinstructions

Page 65: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Deploy with shinyapps.io

Page 66: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

My shinyapps.io

Page 67: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

My shinyapps.io

Page 68: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Useful resources

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/

Page 69: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Thank you!

My email: [email protected]

Page 70: Data Visualization: Shiny Applicationcl.indiana.edu/~obscrivn/Shiny-Introduction.pdf · Data Visualization: Shiny Application Olga Scrivner Web Framework Shiny App Practice Demo Outline

Data Visualization:Shiny Application

Olga Scrivner

Web Framework

Shiny App

Practice Demo

Credits

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-science-from-pivotal-open-source-hub-meetup

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