Building Data Apps with R and Shiny: Essential Training

Building Data Apps with R and Shiny: Essential Training

2h 50mIntermediate2019-07-23

Authors

Charlie Joey Hadley

Charlie Joey Hadley

Technology and open data evangelist

Course details

Shiny allows R data science teams to build interactive data-driven web apps without needing to learn HTML, CSS, or JavaScript. It is a powerful and versatile tool that is often used for R&D, data analysis, and even external marketing purposes. If you have a good understanding of the R language and know how to separate client-side code from server-side, you are ready to dive into this course and build a Shiny app. Charlie Hadley covers organizing single and split-file apps, managing data tables, using APIs to get data into an app, adding data controls, deploying an app, and more.

Learning objectives
Building a Shiny data app
Single vs. split-file apps
Static tables vs. interactive tables
renderTable and kableExtra and DT tables
Connecting to an API
Populating pull-down menus from data
Using interdependent filter controls
Collecting data using rhandsontable
Printing to the R console in Shiny apps
Debugging Shiny apps
shinyjs::runcodeUI, reactlog
Deploying apps

Skills covered

RStudioRStatisticsWeb Development ToolsEssential TrainingWeb DevelopmentProgramming LanguagesData ScienceOpen SourceSoftware Development

Concepts

Introduction

  • Build, test, and deploy apps easily in Shiny
  • Course organization and prerequisites

Introducing Shiny

  • What is Shiny
  • What are data apps
  • Why build data apps with Shiny
  • Run Shiny apps on your own machine
  • Quit Shiny apps on your local machine
  • Deploying apps to shinyapps.io
  • Deploying apps with Shiny Server

Single and Split-File Shiny Apps

  • Single file apps with shinyApp
  • Split-file apps
  • What belongs in the ui.R file
  • What belongs in the server.R file

Shiny Apps 101

  • Creating a simple Shiny app from scratch
  • Understanding input$var and output$plot
  • Render and output functions
  • Using the session argument
  • Never duplicate inputs or outputs

Data Tables in Shiny

  • Choose a table solution
  • Static tables with renderTable
  • Static tables with kableExtra
  • Interactive tables with DT

Getting Data into Your Shiny Apps

  • Shiny apps and data 101
  • Include data files in a Shiny app
  • Shiny and packages that connect to API
  • Shiny and .httr-oauth files
  • Shiny and R environmental variables

Data-Driven Controls

  • Populate pull-down menus from data
  • Labeling choices in selectInput
  • Interdependent controls to filter data
  • Control app updates with actionButton

Allow Users to Upload and Download Data

  • Allow users to download data from an app
  • Download data from DT tables
  • Allow users to upload data to an app
  • Use rhandsontable to collect data

Problem-Solving in Shiny Apps

  • Problem-solving in Shiny apps 101
  • Printing to the R console in Shiny apps
  • Debug apps with shinyjs - - runcodeUI
  • Using reactlog to debug Shiny apps

Making Shiny Apps Beautiful

  • Applying custom CSS to Shiny apps
  • Inserting images into Shiny apps
  • Show loading spinners in Shiny apps

Deploying Shiny Apps

  • Where can you deploy Shiny apps
  • Connecting RStudio with shinyapps.io
  • Managing Shiny apps with rsconnect
  • Programmatically deploying apps

Conclusion

  • Next steps
80,000 Toman