class: monash-bg-blue center middle hide-slide-number <div class="bg-black white" style="width:45%;right:0;bottom:0;padding-left:5px;border: solid 4px white;margin: auto;"> <i class="fas fa-exclamation-circle"></i> These slides are viewed best by Chrome and occasionally need to be refreshed if elements did not load properly. See here for <a href=part1-session4.pdf>PDF <i class="fas fa-file-pdf"></i></a>. </div> <br> .white[Push the **right arrow key** to see the next slide.] --- count: false background-image: url(images/element5-digital-ceWgSMd8rvQ-unsplash.jpg) background-size: cover class: hide-slide-number title-slide <div class="grid-row" style="grid: 1fr / 2fr;"> .item.center[ # <span style="text-shadow: 2px 2px 30px white;">Data Visualisation with R<br>Workshop Part 1</span> <!-- ## <span style="color:;text-shadow: 2px 2px 30px black;">Jazzing up your plots <i class='fas fa-paint-brush'></i></span> --> ] .center.shade_black.animated.bounceInUp.slower[ <br><br> ## Jazzing up your plots <i class='fas fa-paint-brush'></i> <br> Presented by Emi Tanaka Department of Econometrics and Business Statistics <img src="images/monash-one-line-reversed.png" style="width:500px"><br>
<i class="fas fa-envelope faa-float animated "></i>
emi.tanaka@monash.edu
<i class="fab fa-twitter faa-float animated faa-fast "></i>
@statsgen .bottom_abs.width100.bg-black[ 6th Dec 2021 @ Statistical Society of Australia NSW Branch | Zoom ] ] </div> --- class: transition middle animated slideInLeft # .circle-big[5] # Publication-ready plots --- # The `ggplot` object .info-box[ * .monash-blue[**Modifiable**]: `ggplot` object can be modified * .monash-blue[**Generalisable**]: `ggplot2` uses a cohesive and complex system under the hood to make many kinds of plots * .monash-blue[**Extensible**]: the system can be extended to make specialised plots or add more features if the same "grammar" is adopted ] --- class: font_smaller # Motor Trend Car Road Tests The `mtcars` is from the `datasets` π¦ (loaded by default) ```r mtcars_df <- mtcars %>% rownames_to_column("car") glimpse(mtcars_df) ``` ``` ## Rows: 32 ## Columns: 12 ## $ car <chr> "Mazda RX4", "Mazda RX4 Wag", "Datsun 710", "Hornet 4 Drive", "Hoβ¦ ## $ mpg <dbl> 21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19.2, 17.8,β¦ ## $ cyl <dbl> 6, 6, 4, 6, 8, 6, 8, 4, 4, 6, 6, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 8,β¦ ## $ disp <dbl> 160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7, 140.8, 16β¦ ## $ hp <dbl> 110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180, 180, 180β¦ ## $ drat <dbl> 3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.92, 3.92,β¦ ## $ wt <dbl> 2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190, 3.150, 3.β¦ ## $ qsec <dbl> 16.46, 17.02, 18.61, 19.44, 17.02, 20.22, 15.84, 20.00, 22.90, 18β¦ ## $ vs <dbl> 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,β¦ ## $ am <dbl> 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,β¦ ## $ gear <dbl> 4, 4, 4, 3, 3, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3,β¦ ## $ carb <dbl> 4, 4, 1, 1, 2, 1, 4, 2, 2, 4, 4, 3, 3, 3, 4, 4, 4, 1, 2, 1, 1, 2,β¦ ``` --- class: font_smaller # `ggrepel` π¦ .font_small[one of my favorites!] .grid[.item[ ```r ggplot(mtcars_df, aes(wt, mpg)) + geom_point(size = 2, color = "red") + geom_text(aes(label = car)) + ggtitle("geom_text()") ``` <img src="images/part1-session4/unnamed-chunk-5-1.png" style="display: block; margin: auto;" /> {{content}} ] .item[ ```r library(ggrepel) set.seed(1) ggplot(mtcars_df, aes(wt, mpg)) + geom_point(size = 2, color = "red") + geom_text_repel(aes(label = car))+ ggtitle("geom_text_repel()") ``` <img src="images/part1-session4/unnamed-chunk-6-1.png" style="display: block; margin: auto;" /> ] ] .footnote[ Kamil Slowikowski (2020). ggrepel: Automatically Position Non-Overlapping Text Labels with 'ggplot2'. R package version 0.8.2. https://CRAN.R-project.org/package=ggrepel ] -- There are many [extension packages](https://exts.ggplot2.tidyverse.org/)! --- class: middle transition # Themes --- class: center # `theme`: modify the *look* of texts <img src="images/ggplot-theme-text-annotation.png" width = "80%"/> .font_large[`element_text()`] --- class: font_small # `element_text()` <div class="grid" style="grid: 1fr / 1fr 1fr;"> .item[ ```r ggplot(diamonds, aes(carat, price)) + geom_hex() + labs(title = "Diamond") + theme(axis.title.x = element_text(size = 30, color = "red", face = "bold", angle = 10, family = "Fira Code"), legend.title = element_text(size = 25, color = "#ef42eb", margin = margin(b = 5)), plot.title = element_text(size = 35, face = "bold", family = "Nunito", color = "blue" )) ``` ] .item[ <img src="images/part1-session4/ele-text-1.png" style="display: block; margin: auto;" /> ] </div> --- class: center # `theme`: modify the *look* of the lines <img src="images/ggplot-annotated-line-marks.png" width = "70%"/> .font_large[`element_line()`] --- class: font_small # `element_line()` <div class="grid" style="grid: 1fr / 1fr 1fr;"> .item[ ```r ggplot(penguins, aes(bill_length_mm, bill_depth_mm)) + geom_point() + theme(axis.line.y = element_line(color = "black", size = 1.2, arrow = grid::arrow()), axis.line.x = element_line(linetype = "dashed", color = "brown", size = 1.2), axis.ticks = element_line(color = "red", size = 1.1), axis.ticks.length = unit(3, "mm"), panel.grid.major = element_line(color = "blue", size = 1.2), panel.grid.minor = element_line(color = "#0080ff", size = 1.2, linetype = "dotted")) ``` ] .item[ <img src="images/part1-session4/ele-line-1.png" style="display: block; margin: auto;" /> ] </div> --- class: center # `theme`: modify the *look* of the <br>rectangular regions <img src="images/ggplot-annotated-rect-marks.png" width = "40%"/> .font_large[`element_rect()`] --- class: font_small # `element_rect()` <div class="grid" style="grid: 1fr / 1fr 1fr;"> .item[ ```r ggplot(penguins, aes(bill_length_mm, bill_depth_mm)) + geom_point(aes(color = species)) + theme( legend.background = element_rect(fill = "#fff6c2", color = "black", linetype = "dashed"), legend.key = element_rect(fill = "grey", color = "brown"), panel.background = element_rect(fill = "#005F59", color = "red", size = 3), panel.border = element_rect(color = "black", fill = "transparent", linetype = "dashed", size = 3), plot.background = element_rect(fill = "#a1dce9", color = "black", size = 1.3), legend.position = "bottom") ``` ] .item[ <img src="images/part1-session4/ele-rect-1.png" style="display: block; margin: auto;" /> ] </div> --- class: font_smaller # Professional looking plots *without* Adobe Illustrator (or alike) .grid[ .item[ ```r ggplot(mtcars_df, aes(wt, mpg, shape = factor(vs), color = hp)) + geom_point(size = 3) ``` ] .item[ <img src="images/part1-session4/pro-plot1-1.png" style="display: block; margin: auto;" /> ] ] --- count: false class: font_smaller # Professional looking plots *without* Adobe Illustrator (or alike) .grid[ .item[ ```r ggplot(mtcars_df, aes(wt, mpg, shape = factor(vs), color = hp)) + geom_point(size = 3) + scale_color_continuous_sequential(palette = "Dark Mint") + scale_shape_discrete(labels = c("V-shaped", "Straight")) ``` ] .item[ <img src="images/part1-session4/pro-plot2-1.png" style="display: block; margin: auto;" /> ] ] --- count: false class: font_smaller # Professional looking plots *without* Adobe Illustrator (or alike) .grid[ .item[ ```r ggplot(mtcars_df, aes(wt, mpg, shape = factor(vs), color = hp)) + geom_point(size = 3) + scale_color_continuous_sequential(palette = "Dark Mint") + scale_shape_discrete(labels = c("V-shaped", "Straight")) + labs(x = "Weight (1000 lbs)", y = "Miles per gallon", title = "Motor Trend Car Road Tests", shape = "Engine", color = "Horsepower") ``` ] .item[ <img src="images/part1-session4/pro-plot3-1.png" style="display: block; margin: auto;" /> ] ] --- count: false class: font_smaller # Professional looking plots *without* Adobe Illustrator (or alike) .grid[ .item[ ```r ggplot(mtcars_df, aes(wt, mpg, shape = factor(vs), color = hp)) + geom_point(size = 3) + scale_color_continuous_sequential(palette = "Dark Mint") + scale_shape_discrete(labels = c("V-shaped", "Straight")) + labs(x = "Weight (1000 lbs)", y = "Miles per gallon", title = "Motor Trend Car Road Tests", shape = "Engine", color = "Horsepower") + theme(text = element_text(size = 18)) ``` ] .item[ <img src="images/part1-session4/pro-plot4-1.png" style="display: block; margin: auto;" /> ] ] --- count: false class: font_smaller # Professional looking plots *without* Adobe Illustrator (or alike) .grid[ .item[ ```r ggplot(mtcars_df, aes(wt, mpg, shape = factor(vs), color = hp)) + geom_point(size = 3) + scale_color_continuous_sequential(palette = "Dark Mint") + scale_shape_discrete(labels = c("V-shaped", "Straight")) + labs(x = "Weight (1000 lbs)", y = "Miles per gallon", title = "Motor Trend Car Road Tests", shape = "Engine", color = "Horsepower") + theme(text = element_text(size = 18), rect = element_rect(fill = "black")) ``` ] .item[ <img src="images/part1-session4/pro-plot5-1.png" style="display: block; margin: auto;" /> ] ] --- count: false class: font_smaller # Professional looking plots *without* Adobe Illustrator (or alike) .grid[ .item[ ```r ggplot(mtcars_df, aes(wt, mpg, shape = factor(vs), color = hp)) + geom_point(size = 3) + scale_color_continuous_sequential(palette = "Dark Mint") + scale_shape_discrete(labels = c("V-shaped", "Straight")) + labs(x = "Weight (1000 lbs)", y = "Miles per gallon", title = "Motor Trend Car Road Tests", shape = "Engine", color = "Horsepower") + theme(text = element_text(size = 18, color = "white"), rect = element_rect(fill = "black")) ``` ] .item[ <img src="images/part1-session4/pro-plot6-1.png" style="display: block; margin: auto;" /> ] ] --- count: false class: font_smaller # Professional looking plots *without* Adobe Illustrator (or alike) .grid[ .item[ ```r ggplot(mtcars_df, aes(wt, mpg, shape = factor(vs), color = hp)) + geom_point(size = 3) + scale_color_continuous_sequential(palette = "Dark Mint") + scale_shape_discrete(labels = c("V-shaped", "Straight")) + labs(x = "Weight (1000 lbs)", y = "Miles per gallon", title = "Motor Trend Car Road Tests", shape = "Engine", color = "Horsepower") + theme(text = element_text(size = 18, color = "white"), rect = element_rect(fill = "black"), panel.background = element_rect(fill = "black"), legend.key = element_rect(fill = "black")) ``` ] .item[ <img src="images/part1-session4/pro-plot7-1.png" style="display: block; margin: auto;" /> ] ] --- count: false class: font_smaller # Professional looking plots *without* Adobe Illustrator (or alike) .grid[ .item[ ```r ggplot(mtcars_df, aes(wt, mpg, shape = factor(vs), color = hp)) + geom_point(size = 3) + scale_color_continuous_sequential(palette = "Dark Mint") + scale_shape_discrete(labels = c("V-shaped", "Straight")) + labs(x = "Weight (1000 lbs)", y = "Miles per gallon", title = "Motor Trend Car Road Tests", shape = "Engine", color = "Horsepower") + theme(text = element_text(size = 18, color = "white"), rect = element_rect(fill = "black"), panel.background = element_rect(fill = "black"), legend.key = element_rect(fill = "black")) + guides(shape = guide_legend(override.aes = list(color = "white"))) ``` ] .item[ <img src="images/part1-session4/pro-plot8-1.png" style="display: block; margin: auto;" /> ] ] --- count: false class: font_smaller # Professional looking plots *without* Adobe Illustrator (or alike) .grid[ .item[ ```r ggplot(mtcars_df, aes(wt, mpg, shape = factor(vs), color = hp)) + geom_point(size = 3) + scale_color_continuous_sequential(palette = "Dark Mint") + scale_shape_discrete(labels = c("V-shaped", "Straight")) + labs(x = "Weight (1000 lbs)", y = "Miles per gallon", title = "Motor Trend Car Road Tests", shape = "Engine", color = "Horsepower") + theme(text = element_text(size = 18, color = "white"), rect = element_rect(fill = "black"), panel.background = element_rect(fill = "black"), legend.key = element_rect(fill = "black"), axis.text = element_text(color = "white")) + guides(shape = guide_legend(override.aes = list(color = "white"))) ``` ] .item[ <img src="images/part1-session4/pro-plot9-1.png" style="display: block; margin: auto;" /> ] ] --- count: false class: font_smaller # Professional looking plots *without* Adobe Illustrator (or alike) .grid[ .item[ ```r ggplot(mtcars_df, aes(wt, mpg, shape = factor(vs), color = hp)) + geom_point(size = 3) + scale_color_continuous_sequential(palette = "Dark Mint") + scale_shape_discrete(labels = c("V-shaped", "Straight")) + labs(x = "Weight (1000 lbs)", y = "Miles per gallon", title = "Motor Trend Car Road Tests", shape = "Engine", color = "Horsepower") + theme(text = element_text(size = 18, color = "white"), rect = element_rect(fill = "black"), panel.background = element_rect(fill = "black"), legend.key = element_rect(fill = "black"), axis.text = element_text(color = "white"), plot.title.position = "plot") + guides(shape = guide_legend(override.aes = list(color = "white"))) ``` ] .item[ <img src="images/part1-session4/pro-plot10-1.png" style="display: block; margin: auto;" /> ] ] --- count: false class: font_smaller # Professional looking plots *without* Adobe Illustrator (or alike) .grid[ .item[ ```r ggplot(mtcars_df, aes(wt, mpg, shape = factor(vs), color = hp)) + geom_point(size = 3) + scale_color_continuous_sequential(palette = "Dark Mint") + scale_shape_discrete(labels = c("V-shaped", "Straight")) + labs(x = "Weight (1000 lbs)", y = "Miles per gallon", title = "Motor Trend Car Road Tests", shape = "Engine", color = "Horsepower") + theme(text = element_text(size = 18, color = "white"), rect = element_rect(fill = "black"), panel.background = element_rect(fill = "black"), legend.key = element_rect(fill = "black"), axis.text = element_text(color = "white"), plot.title.position = "plot", plot.margin = margin(10, 10, 10, 10)) + guides(shape = guide_legend(override.aes = list(color = "white"))) ``` ] .item.animated.tada.delay-2s[ <img src="images/part1-session4/pro-plot-1.png" style="display: block; margin: auto;" /> ] ] --- class: font_smaller # Built-in themes .center[ There are many existing themes (you can also make your own) ] ```r g <- ggplot(mtcars_df, aes(wt, mpg)) + geom_point(size = 3) + labs(x = "Weight (1000 lbs)", y = "Miles per gallon") ``` .grid[.item2.border-right[ ```r g + theme_bw() ``` <img src="images/part1-session4/unnamed-chunk-8-1.png" style="display: block; margin: auto;" /> ] .item2.border-right[ ```r g + theme_classic() ``` <img src="images/part1-session4/unnamed-chunk-9-1.png" style="display: block; margin: auto;" /> ] .item2[ ```r g + theme_dark() ``` <img src="images/part1-session4/unnamed-chunk-10-1.png" style="display: block; margin: auto;" /> ] ] --- class: font_smaller # Combining plots with `patchwork` π¦ ```r library(patchwork) g1 <- ggplot(penguins, aes(bill_length_mm, body_mass_g, color = species)) + geom_point() + theme_bw(base_size = 18) + labs(tag = "(A)", x = "Bill length (mm)", y = "Body mass (g)", color = "Species") g2 <- ggplot(penguins, aes(bill_length_mm, fill = species)) + geom_density() + theme_bw(base_size = 18) + labs(tag = "(B)", x = "Bill length (mm)", y = "Density", fill = "Species") *g1 + g2 ``` <img src="images/part1-session4/unnamed-chunk-11-1.png" style="display: block; margin: auto;" /> .footnote[ Thomas Lin Pedersen (2020). patchwork: The Composer of Plots. R package version 1.0.1. https://CRAN.R-project.org/package=patchwork ] --- class: exercise middle hide-slide-number <i class="fas fa-users"></i> # <i class="fas fa-code"></i> Open `part1-exercise-04.Rmd` <center>
15
:
00
</center> --- class: font_smaller background-color: #e5e5e5 # Session Information .scroll-350[ ```r devtools::session_info() ``` ``` ## β Session info πΈπΎ π π βββββββββββββββββββββββββββββββββββββββββββββββββ ## hash: princess: medium-dark skin tone, bell with slash, french fries ## ## setting value ## version R version 4.1.2 (2021-11-01) ## os macOS Big Sur 10.16 ## system x86_64, darwin17.0 ## ui X11 ## language (EN) ## collate en_AU.UTF-8 ## ctype en_AU.UTF-8 ## tz Australia/Melbourne ## date 2021-12-06 ## pandoc 2.11.4 @ /Applications/RStudio.app/Contents/MacOS/pandoc/ (via rmarkdown) ## ## β Packages βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ## package * version date (UTC) lib source ## anicon 0.1.0 2021-11-30 [1] Github (emitanaka/anicon@0b756df) ## assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.1.0) ## backports 1.3.0 2021-10-27 [1] CRAN (R 4.1.0) ## broom 0.7.10 2021-10-31 [1] CRAN (R 4.1.0) ## bslib 0.3.1 2021-10-06 [1] CRAN (R 4.1.0) ## cachem 1.0.6 2021-08-19 [1] CRAN (R 4.1.0) ## callr 3.7.0 2021-04-20 [1] CRAN (R 4.1.0) ## cellranger 1.1.0 2016-07-27 [1] CRAN (R 4.1.0) ## cli 3.1.0 2021-10-27 [1] CRAN (R 4.1.0) ## colorspace * 2.0-2 2021-06-24 [1] CRAN (R 4.1.0) ## countdown 0.3.5 2021-11-30 [1] Github (gadenbuie/countdown@a544fa4) ## crayon 1.4.2 2021-10-29 [1] CRAN (R 4.1.0) ## DBI 1.1.1 2021-01-15 [1] CRAN (R 4.1.0) ## dbplyr 2.1.1 2021-04-06 [1] CRAN (R 4.1.0) ## desc 1.4.0 2021-09-28 [1] CRAN (R 4.1.0) ## devtools 2.4.2 2021-06-07 [1] CRAN (R 4.1.0) ## digest 0.6.28 2021-09-23 [1] CRAN (R 4.1.0) ## dplyr * 1.0.7 2021-06-18 [1] CRAN (R 4.1.0) ## ellipsis 0.3.2 2021-04-29 [1] CRAN (R 4.1.0) ## evaluate 0.14 2019-05-28 [1] CRAN (R 4.1.0) ## fansi 0.5.0 2021-05-25 [1] CRAN (R 4.1.0) ## farver 2.1.0 2021-02-28 [1] CRAN (R 4.1.0) ## fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.1.0) ## forcats * 0.5.1 2021-01-27 [1] CRAN (R 4.1.0) ## fs 1.5.0 2020-07-31 [1] CRAN (R 4.1.0) ## generics 0.1.1 2021-10-25 [1] CRAN (R 4.1.0) ## ggplot2 * 3.3.5 2021-06-25 [1] CRAN (R 4.1.0) ## ggrepel * 0.9.1 2021-01-15 [1] CRAN (R 4.1.0) ## glue 1.5.0 2021-11-07 [1] CRAN (R 4.1.0) ## gtable 0.3.0 2019-03-25 [1] CRAN (R 4.1.0) ## haven 2.4.3 2021-08-04 [1] CRAN (R 4.1.0) ## hexbin 1.28.2 2021-01-08 [1] CRAN (R 4.1.0) ## highr 0.9 2021-04-16 [1] CRAN (R 4.1.0) ## hms 1.1.1 2021-09-26 [1] CRAN (R 4.1.0) ## htmltools 0.5.2 2021-08-25 [1] CRAN (R 4.1.0) ## httr 1.4.2 2020-07-20 [1] CRAN (R 4.1.0) ## icon 0.1.0 2021-11-30 [1] Github (emitanaka/icon@8458546) ## jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.1.0) ## jsonlite 1.7.2 2020-12-09 [1] CRAN (R 4.1.0) ## knitr 1.36 2021-09-29 [1] CRAN (R 4.1.0) ## labeling 0.4.2 2020-10-20 [1] CRAN (R 4.1.0) ## lattice 0.20-45 2021-09-22 [1] CRAN (R 4.1.2) ## lifecycle 1.0.1 2021-09-24 [1] CRAN (R 4.1.0) ## lubridate 1.8.0 2021-10-07 [1] CRAN (R 4.1.0) ## magrittr 2.0.1 2020-11-17 [1] CRAN (R 4.1.0) ## memoise 2.0.0 2021-01-26 [1] CRAN (R 4.1.0) ## modelr 0.1.8 2020-05-19 [1] CRAN (R 4.1.0) ## munsell 0.5.0 2018-06-12 [1] CRAN (R 4.1.0) ## palmerpenguins * 0.1.0 2020-07-23 [1] CRAN (R 4.1.0) ## patchwork * 1.1.1 2020-12-17 [1] CRAN (R 4.1.0) ## pillar 1.6.4 2021-10-18 [1] CRAN (R 4.1.0) ## pkgbuild 1.2.0 2020-12-15 [1] CRAN (R 4.1.0) ## pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.1.0) ## pkgload 1.2.3 2021-10-13 [1] CRAN (R 4.1.0) ## prettyunits 1.1.1 2020-01-24 [1] CRAN (R 4.1.0) ## processx 3.5.2 2021-04-30 [1] CRAN (R 4.1.0) ## ps 1.6.0 2021-02-28 [1] CRAN (R 4.1.0) ## purrr * 0.3.4 2020-04-17 [1] CRAN (R 4.1.0) ## R6 2.5.1 2021-08-19 [1] CRAN (R 4.1.0) ## Rcpp 1.0.7 2021-07-07 [1] CRAN (R 4.1.0) ## readr * 2.1.0 2021-11-11 [1] CRAN (R 4.1.0) ## readxl 1.3.1 2019-03-13 [1] CRAN (R 4.1.0) ## remotes 2.4.1 2021-09-29 [1] CRAN (R 4.1.0) ## reprex 2.0.1 2021-08-05 [1] CRAN (R 4.1.0) ## rlang 0.4.12 2021-10-18 [1] CRAN (R 4.1.0) ## rmarkdown 2.11 2021-09-14 [1] CRAN (R 4.1.0) ## rprojroot 2.0.2 2020-11-15 [1] CRAN (R 4.1.0) ## rstudioapi 0.13 2020-11-12 [1] CRAN (R 4.1.0) ## rvest 1.0.2 2021-10-16 [1] CRAN (R 4.1.0) ## sass 0.4.0 2021-05-12 [1] CRAN (R 4.1.0) ## scales 1.1.1 2020-05-11 [1] CRAN (R 4.1.0) ## sessioninfo 1.2.1 2021-11-02 [1] CRAN (R 4.1.0) ## stringi 1.7.5 2021-10-04 [1] CRAN (R 4.1.0) ## stringr * 1.4.0 2019-02-10 [1] CRAN (R 4.1.0) ## testthat 3.1.0 2021-10-04 [1] CRAN (R 4.1.0) ## tibble * 3.1.6 2021-11-07 [1] CRAN (R 4.1.0) ## tidyr * 1.1.4 2021-09-27 [1] CRAN (R 4.1.0) ## tidyselect 1.1.1 2021-04-30 [1] CRAN (R 4.1.0) ## tidyverse * 1.3.1 2021-04-15 [1] CRAN (R 4.1.0) ## tzdb 0.2.0 2021-10-27 [1] CRAN (R 4.1.0) ## usethis 2.1.3 2021-10-27 [1] CRAN (R 4.1.0) ## utf8 1.2.2 2021-07-24 [1] CRAN (R 4.1.0) ## vctrs 0.3.8 2021-04-29 [1] CRAN (R 4.1.0) ## whisker 0.4 2019-08-28 [1] CRAN (R 4.1.0) ## withr 2.4.2 2021-04-18 [1] CRAN (R 4.1.0) ## xaringan 0.22 2021-06-23 [1] CRAN (R 4.1.0) ## xfun 0.28 2021-11-04 [1] CRAN (R 4.1.0) ## xml2 1.3.2 2020-04-23 [1] CRAN (R 4.1.0) ## yaml 2.2.1 2020-02-01 [1] CRAN (R 4.1.0) ## ## [1] /Library/Frameworks/R.framework/Versions/4.1/Resources/library ## ## ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ``` ] These slides are licensed under <br><center><a href="https://creativecommons.org/licenses/by-sa/3.0/au/"><img src="images/cc.svg" style="height:2em;"/><img src="images/by.svg" style="height:2em;"/><img src="images/sa.svg" style="height:2em;"/></a></center>