useR: The Week in Review
That’s it for #useR2018. After 6 keynotes, 132 parallel sessions, many more lightning talks and posters, and an all-important conference dinner, we’ve reached the end of the week.
This was my first proper conference since 2015. I had almost forgotten how it felt to be surrounded by hundreds of people who are just as passionate (if not more) about your tiny area of specialised knowledge than you are.
I took notes for the three tutorials I went to, but I wanted to take a moment to review the week as a whole, including the talks that stood out to me. You can find my tutorial notes below:
- Tutorial one: Getting Started with R and Docker
- Tutorial two: Recipes for Data Processing
- Tutorial three: Missing Values Imputation
All talks and tutorials were recorded, so keep an eye out for them on the useR2018 site. The #rstats community is active on Twitter, so check out the #useR2018 hashtag as well.
A quick personal note
I’d like to declare my own biggest success and biggest failure of the conference:
- Biggest personal win: I posted notes from each of the three tutorials I went to! This forced me to learn more about PCA, which is a big win.
- Biggest personal not-win: I didn’t present anything. I told myself this was because I had nothing to present, but I’m not so sure that’s true.
Talk highlights
- Steph de Silva spoke of R as not just a language but a community. And in this community you go from seeing R as something you use to seeing R as something you share. The R subculture(s) have real power to contribute in a world where data affects decisions.
- Rob Hyndman’s new
fable
package looks super easy to use. It’s a tidyverse-compatible replacement for his extremely popularforecast
package. He calls it “fable” because “fables aren’t true but they tell you something useful about reality, just like a forecast.” - Thomas Lin Pedersen is rewriting the
gganimate
package and it looks so cool. He described visualisation as existing on a spectrum between static, interactive, and animated. Traditional media (eg. newspapers) use static visualisation and modern journalism websites use interactive visualisation, but animated visualisation is often found in social media.
Last example done for my @useR2018_conf keynote, showing the automagical transformation of shapes provided by gganimate, courtesy of transformr #rstats pic.twitter.com/q7nGSXqWJ2
— Thomas Lin Pedersen (@thomasp85) July 3, 2018
- Katie Sasso introduced standalone Shiny applications using Electron. I am so keen to try these out! Imagine being able to distribute a Shiny app to someone without them needing to so much as install R.
- Nicholas Tierney’s
maxcovr
package makes it easier to solve the maximal coverage location problem in R. His choice of example was apt. Brisbane offers free public wifi in and around the CBD, and themaxcovr
package can be used to identify optimal placemennt of new routers to improver the coverage population and area. - Roger D. Peng spoke about the teaching R. I loved the quote from John Chambers on S (R’s predecessor): “We wanted users to begin in an interactive environment, where they did not consciously think of themselves as programming… they should be able to slide gradually into programming.” This is the R value proposition in a nutshell for me: you don’t have to jump into the developer side of things, but if you want to start going down that path it’s a gradual transition.
Tidyverse philosophy: modularity, clarity, composition, transparency, least surprise, repair... oops, that's the Unix philosophy! Still applies.@rdpeng at #useR2018 pic.twitter.com/nN4ZvvkLbQ
— David Neuzerling (@mdneuzerling) July 12, 2018
- Jenny Bryan spoke about code smells and feels. Whenever I read something cool and useful about R I look at the author and there’s a good chance it’s Jenny. I like that the advice in her talk is more “use this in moderation” rather than the prescriptive “Don’t do this”.
- Danielle Navarro shared her experience in teaching R to psychology students. This one resonated, especially with her emphasis on student fear. Student fear stops learning before it can begin!
- Martin Mächler of the R Core team discussed an often-neglected topic: numerical precision. It was a chance to get into the guts of R. He also gave the following bizarre example:
unique((1:10)/10 - (0:9)/10)
#> [1] 0.1 0.1 0.1 0.1
“10.0 times 0.1 is hardly ever 1.0” - The Elements of Programming Style by Brian W. Kernighan and P. J. Plauger
Wrapping up
Thank you to the organisers and to everyone who contributed to the conference.
I met a tonne of people here and I can’t mention everyone. Thank you to the following people for existing and for making my #useR2018 experience extra-special: Adam Gruer, Dale Maschette, Emily Kothe, John Ormerod, Steph de Silva, Charles T. Gray, and Ben Harrap.
devtools::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.0.0 (2020-04-24)
#> os Ubuntu 20.04 LTS
#> system x86_64, linux-gnu
#> ui X11
#> language en_AU:en
#> collate en_AU.UTF-8
#> ctype en_AU.UTF-8
#> tz Australia/Melbourne
#> date 2020-06-13
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────
#> package * version date lib source
#> assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.0.0)
#> backports 1.1.7 2020-05-13 [1] CRAN (R 4.0.0)
#> blogdown 0.19 2020-05-22 [1] CRAN (R 4.0.0)
#> broom 0.5.6 2020-04-20 [1] CRAN (R 4.0.0)
#> callr 3.4.3 2020-03-28 [1] CRAN (R 4.0.0)
#> cellranger 1.1.0 2016-07-27 [1] CRAN (R 4.0.0)
#> cli 2.0.2 2020-02-28 [1] CRAN (R 4.0.0)
#> colorspace 1.4-1 2019-03-18 [1] CRAN (R 4.0.0)
#> crayon 1.3.4 2017-09-16 [1] CRAN (R 4.0.0)
#> DBI 1.1.0 2019-12-15 [1] CRAN (R 4.0.0)
#> dbplyr 1.4.3 2020-04-19 [1] CRAN (R 4.0.0)
#> desc 1.2.0 2018-05-01 [1] CRAN (R 4.0.0)
#> devtools 2.3.0 2020-04-10 [1] CRAN (R 4.0.0)
#> digest 0.6.25 2020-02-23 [1] CRAN (R 4.0.0)
#> downlit 0.0.0.9000 2020-06-12 [1] Github (r-lib/downlit@87fb1af)
#> dplyr * 0.8.5 2020-03-07 [1] CRAN (R 4.0.0)
#> ellipsis 0.3.1 2020-05-15 [1] CRAN (R 4.0.0)
#> evaluate 0.14 2019-05-28 [1] CRAN (R 4.0.0)
#> fansi 0.4.1 2020-01-08 [1] CRAN (R 4.0.0)
#> forcats * 0.5.0 2020-03-01 [1] CRAN (R 4.0.0)
#> fs 1.4.1 2020-04-04 [1] CRAN (R 4.0.0)
#> generics 0.0.2 2018-11-29 [1] CRAN (R 4.0.0)
#> ggplot2 * 3.3.0 2020-03-05 [1] CRAN (R 4.0.0)
#> glue 1.4.1 2020-05-13 [1] CRAN (R 4.0.0)
#> gtable 0.3.0 2019-03-25 [1] CRAN (R 4.0.0)
#> haven 2.2.0 2019-11-08 [1] CRAN (R 4.0.0)
#> hms 0.5.3 2020-01-08 [1] CRAN (R 4.0.0)
#> htmltools 0.4.0 2019-10-04 [1] CRAN (R 4.0.0)
#> httr 1.4.1 2019-08-05 [1] CRAN (R 4.0.0)
#> hugodown 0.0.0.9000 2020-06-12 [1] Github (r-lib/hugodown@6812ada)
#> jsonlite 1.6.1 2020-02-02 [1] CRAN (R 4.0.0)
#> knitr 1.28 2020-02-06 [1] CRAN (R 4.0.0)
#> lattice 0.20-41 2020-04-02 [4] CRAN (R 4.0.0)
#> lifecycle 0.2.0 2020-03-06 [1] CRAN (R 4.0.0)
#> lubridate 1.7.8 2020-04-06 [1] CRAN (R 4.0.0)
#> magrittr 1.5 2014-11-22 [1] CRAN (R 4.0.0)
#> memoise 1.1.0.9000 2020-05-09 [1] Github (hadley/memoise@4aefd9f)
#> modelr 0.1.6 2020-02-22 [1] CRAN (R 4.0.0)
#> munsell 0.5.0 2018-06-12 [1] CRAN (R 4.0.0)
#> nlme 3.1-145 2020-03-04 [4] CRAN (R 4.0.0)
#> pillar 1.4.4 2020-05-05 [1] CRAN (R 4.0.0)
#> pkgbuild 1.0.7 2020-04-25 [1] CRAN (R 4.0.0)
#> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.0.0)
#> pkgload 1.0.2 2018-10-29 [1] CRAN (R 4.0.0)
#> prettyunits 1.1.1 2020-01-24 [1] CRAN (R 4.0.0)
#> processx 3.4.2 2020-02-09 [1] CRAN (R 4.0.0)
#> ps 1.3.3 2020-05-08 [1] CRAN (R 4.0.0)
#> purrr * 0.3.4 2020-04-17 [1] CRAN (R 4.0.0)
#> R6 2.4.1 2019-11-12 [1] CRAN (R 4.0.0)
#> Rcpp 1.0.4.6 2020-04-09 [1] CRAN (R 4.0.0)
#> readr * 1.3.1 2018-12-21 [1] CRAN (R 4.0.0)
#> readxl 1.3.1 2019-03-13 [1] CRAN (R 4.0.0)
#> remotes 2.1.1 2020-02-15 [1] CRAN (R 4.0.0)
#> reprex 0.3.0 2019-05-16 [1] CRAN (R 4.0.0)
#> rlang 0.4.6 2020-05-02 [1] CRAN (R 4.0.0)
#> rmarkdown 2.2.3 2020-06-12 [1] Github (rstudio/rmarkdown@4ee96c8)
#> rprojroot 1.3-2 2018-01-03 [1] CRAN (R 4.0.0)
#> rstudioapi 0.11 2020-02-07 [1] CRAN (R 4.0.0)
#> rvest 0.3.5 2019-11-08 [1] CRAN (R 4.0.0)
#> scales 1.1.0 2019-11-18 [1] CRAN (R 4.0.0)
#> sessioninfo 1.1.1 2018-11-05 [1] CRAN (R 4.0.0)
#> stringi 1.4.6 2020-02-17 [1] CRAN (R 4.0.0)
#> stringr * 1.4.0 2019-02-10 [1] CRAN (R 4.0.0)
#> testthat 2.3.2 2020-03-02 [1] CRAN (R 4.0.0)
#> tibble * 3.0.1 2020-04-20 [1] CRAN (R 4.0.0)
#> tidyr * 1.0.2 2020-01-24 [1] CRAN (R 4.0.0)
#> tidyselect 1.0.0 2020-01-27 [1] CRAN (R 4.0.0)
#> tidyverse * 1.3.0 2019-11-21 [1] CRAN (R 4.0.0)
#> usethis 1.6.1 2020-04-29 [1] CRAN (R 4.0.0)
#> vctrs 0.3.1 2020-06-05 [1] CRAN (R 4.0.0)
#> withr 2.2.0 2020-04-20 [1] CRAN (R 4.0.0)
#> xfun 0.14 2020-05-20 [1] CRAN (R 4.0.0)
#> xml2 1.3.2 2020-04-23 [1] CRAN (R 4.0.0)
#> yaml 2.2.1 2020-02-01 [1] CRAN (R 4.0.0)
#>
#> [1] /home/mdneuzerling/R/x86_64-pc-linux-gnu-library/4.0
#> [2] /usr/local/lib/R/site-library
#> [3] /usr/lib/R/site-library
#> [4] /usr/lib/R/library