Materials for the Introduction to Shiny and R Markdown workshop at rstudio::conf 2019
-
Option 1 - ☁️ RStudio Cloud: bit.ly/shinymark
- If you do not already have an RStudio.cloud account, you will be prompted to login via Google or create a new account.
- When you are
-
Option 2 - 💻 Local installation: github.com/dtkaplan/shinymark
- 00 - Welcome Getting started instructions + motivation + demo
- 01 - Composing prose with Markdown:
- Text and headers
- Links and images
- Math text
- Tables
- The Markdown Quick Reference
- Your turn: From plain text to embellished
- 02 - Putting the R in R Markdown:
- Embedding R code -- in chunks and inline
- Chunk and global options
- Other languages
- Output options
- Output formats
- Your turn: Restructure from plain R Markdown to xaringan slides or Tufte document
- Tables
- Parameterized reports
- Bibliography and citation
- Templates
- Slides:
03B-interactivity-on-the-cheap.key
- Embedding htmlwidgets in R Markdown documents
- Dashboards
- First practice with shiny widgets. Use
runtime: shiny
The activities will be based on files in the apps/
directory. Each file includes a suffix like _01
, _02
, ....
- Start by opening the
_01
file. Edit that to complete the activity. - In the follow-up exercises, you can keep on going with the file you started with, or if you get lost ...
- Open up the next file (e.g.
_02
) so that you have a working document for the next activity.
- 04 - Getting started with Shiny:
- High level view
- Anatomy of a Shiny app
- UI / Server
- File structure
- Deploying an app
- 05 - Understanding reactivity:
- Reactivity 101
- Reactive flow
- Implementation
- Render functions
- Interface builder functions
- Tabs
- shinythemes
- What's in a dashboard?
- flexdashboards
- Where to go next?
from_cran <- c("shiny", "rmarkdown",
"DT", "devtools", "flexdashboard", "gapminder",
"rticles", "shinydashboard", "shinythemes",
"tidyverse", "tufte", "xaringan")
install.packages(from_cran, repos = "http://cran.rstudio.com")
lapply(from_cran, library, character.only = TRUE)