december 2015 meetup - shiny: make your r code interactive - craig wang

13
Shiny: Make Your R Code Interactive Craig Wang MSc in Statistics at ETH R Programmer at Institut für Mathematik UZH Zurich R User Group Meetups December 1

Upload: zurichrusergroup

Post on 12-Apr-2017

299 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

Shiny: Make Your R Code Interactive

Craig Wang

MSc in Statistics at ETH

R Programmer at Institut für Mathematik UZH

Zurich R User Group Meetups December

1

Page 2: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

Brief Demo

http://t.uzh.ch/se

2Zurich R User Group Meetups

December

Page 3: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

Overview

• Introduction

• Setup and structure

• Work-through example

• Deploy and Share

• More Resources

3Zurich R User Group Meetups

December

Page 4: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

Introduction to Shiny

• A freely-available third party R package created by Rstudio

• Allows to transform R code into interactive web applications

• Provide native programming environments

• Easy to get hands on, no website design experience required

4Zurich R User Group Meetups

December

Page 5: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

Setup and Structure

• Simply install and load the package ‘shiny’

• Select a path to save all your files about your Shiny application

• Basic files• ui.R is a script file that implements all the user interface elements such as

buttons, drop-down menus, sliders

• server.R is a script file that takes input from the interface and process it, finally update the interface

• runApp(“Hello Shiny”) in R

5Zurich R User Group Meetups

December

Page 6: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

Work-through Example

library(shiny)

shinyUI(fluidPage(

titlePanel("Hello Shiny!"), # define title

sidebarLayout( # choose layout

sidebarPanel(

sliderInput("bins", "Number of bins:", min = 1, max = 50,

value = 30)

),

mainPanel(

plotOutput("distPlot")

))

))

6Zurich R User Group Meetups

December

Page 7: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

Work-through Example

x <- faithful[, 2] # Old Faithful Geyser data

bins <- seq(min(x), max(x), length.out = n + 1) # n is number of bins

hist(x, breaks = bins, col = 'darkgray', border = 'white')

7Zurich R User Group Meetups

December

Page 8: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

Work-through Example

x <- faithful[, 2] # Old Faithful Geyser data

bins <- seq(min(x), max(x), length.out = n + 1) # n is number of bins

hist(x, breaks = bins, col = 'darkgray', border = 'white')

x <- faithful[, 2] # Old Faithful Geyser data

bins <- seq(min(x), max(x), length.out = input$bins + 1)

hist(x, breaks = bins, col = 'darkgray', border = 'white')

8Zurich R User Group Meetups

December

Page 9: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

Work-through Example

x <- faithful[, 2] # Old Faithful Geyser data

bins <- seq(min(x), max(x), length.out = n + 1) # n is number of bins

hist(x, breaks = bins, col = 'darkgray', border = 'white')

library(shiny)

shinyServer(function(input, output) {

output$distPlot <- renderPlot({

x <- faithful[, 2] # Old Faithful Geyser data

bins <- seq(min(x), max(x), length.out = input$bins + 1)

hist(x, breaks = bins, col = 'darkgray', border = 'white')

})

})

9Zurich R User Group Meetups

December

Page 10: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

Work-through Example

• runApp(“Hello Shiny”)

10Zurich R User Group Meetups

December

Page 11: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

Deploy and Share

• Once the application is ready, it is free to share with the public

• Cost: free for 25 hours/month, up to 10,000 hours/month

• Wide range of applications on Shinyapp.io• https://jnuke2000.shinyapps.io/ShinyDash

• https://leehbi.shinyapps.io/Sales-Pricing-Tool/

• https://healthrank.shinyapps.io/demo/

11Zurich R User Group Meetups

December

Page 12: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

More Resources

• Cheat sheets

• Tutorial

• Shiny gallery

12Zurich R User Group Meetups

December

Page 13: December 2015 Meetup - Shiny: Make Your R Code Interactive - Craig Wang

Final Notes

• Demo website: http://t.uzh.ch/se

• My contact: [email protected]

• Thanks Christoph and Heidi for organizing this, also Sanitas for sponsoring the venue.

13Zurich R User Group Meetups

December