Earlier this month I, together with two other Mangoes, made my way to France for the 2019 edition of useR!.

useR! brings together users and developers both from academia and the industry. This year it was hosted in Toulouse and together with side-events covered the second week of July. It was my first time attending useR!, so I didn’t really know what to expect.

I enjoyed the good food, geeking out over the cool talks on the latest R developments, and making a bunch of new friends. Mango was also one of the conference sponsors, our way of showing appreciation and support for the community.

Tidyverse developer day

Things kicked off on Monday the 8th of July with a side-event, the Tidyverse Developer Day, an initiative aimed at encouraging users to contribute to the {tidyverse} by solving some curated issues. I found it very rewarding to be able to chip into a beloved suite of packages largely aimed at making our lives easier and, thus, lowering the barrier to entry in the R world.

I really loved working alongside fellow R users and having access to some of the most experienced R developers in the world. I improved the documentation for one of the {withr} functions, as a warm-up task, and then worked on a more complex {usethis} issue. Both pull request were accepted and I can’t wait for the {usethis} feature I helped add to make its way to the CRAN release.

The Conference

A couple of themes emerged for me from the sea of talks and tutorials: better science and better workflow. I think there is a lot of overlap between the two and the distinction is not as clear as my classification might make it sound. An obvious caveat – this interpretation is largely biased by the topics I’m interested in and the talks I chose to go to. Nevertheless, there were quite a few talks touching on the topic of better science, which is also a testament to R’s (and the conference’s) academic heritage.

Better science

In the grand theme of making better science, I would include talks touching on improving reproducibility, bridging the skills gap or encouraging good practices.

  • Julia Stewart Lowndes’s awesome keynote on using R to fill the rift between environmental data and data science (R for better science in less time).
  • Joe Cheng’s keynote on solving the reproducibility problem of Shiny apps. His commitment to give a talk on this topic was the catalyst for the development of {shinymeta} – an R package that captures Shiny logic and exposes it as R code (Shiny’s Holy Grail: Interactivity with reproducibility).
  • Julie Josse’s keynote on missing data and modelling in R. She is also one of the maintainers of the CRAN Task View on missing data (A missing value tour in R).
  • I will put Davis Vaughan’s tutorial on {hardhat} in this bucket too. {hardhat} is a developer focused package aimed at standardising modelling packages to follow best-practices (Design For Humans! A Toolkit For Creating Intuitive Modeling Packages).
  • Our own Hannah Frick took attendees on a lightning tour of {goodpractice} – a chatty package that analyses your code and gives you advice on best practices when building R packages (goodpractice – A Tool for Good Package Development). Hannah’s topic touches on both workflow and better scientific practice making it a good bridge between what I consider the two main themes of the conference.

Better workflow

Under workflow I grouped tools aimed at making your life easier (mostly by reducing cognitive load), be it when building and deploying Shiny apps, reshaping your data or building R packages. Talks that stood out for me under this umbrella were:

  • Vincent Guyader’s talk on {golem} – a package developed by the crew at ThinkR, aimed at abstracting away some of the complexities of developing a production-ready Shiny apps (Golem : A Framework for Building Robust & Production Ready Shiny Apps).
  • Jenny Bryan’s talk on {usethis} and its conscious uncoupling from {devtools}. {usethis} implements the DRY – don’t repeat yourself – concept and aims to facilitate of key steps of the package development workflow (DRY out your workflow with the usethis package). Hint: we love {usethis} and we’re going to make heavy use of it during our own EARL package building workshop.
  • Hadley Wickham’s talk on Enhancements to data tidying. Following feedback from users on finding {tidyr} gather() and spread()sometimes confusing, two new, more intuitive, functions were introduced called pivot_longer() and pivot_wider(). More info in the new vignette.
  • Romain François’s talks on new {dplyr} functionality (n() cool #dplyr things) and the {dance} experimental package looking to implement {dplyr}-like functionality, but supported by the latest low-level developments in R, such as the {rlang} and {vctrs} packages.

I spent most of the rest of my time in the programming and performance tracks where, in addition to those named above, there were some other remarkable talks:

  • Colin Gillespie’s – which probably was the funniest talk of the conference (R and security). He highlighted a few instances in which access to a users system can be gained via relatively inconspicuous R tasks.
  • Jim Hester’s talk on {vroom} – “the fastest delimited reader for R” – a new file import package that uses the altrep framework introduced in R 3.5 (Real-time file import with the vroom package).
  • Gábor Csárdi spoke about {pak} which proposes a new way to install packages – an alternative to install.packages() – that’s fast, safe and convenient (pak: a fresh approach to package installation).
  • Lionel Henry talked about writing {tidyverse}-like functions that make use of non-standard evaluation (Reusing tidyverse code, the easy way).

For those who missed out, the keynotes are available on the RConsortium YouTube channel. Slides for the presentations can be found alongside the programme – https://user2019.r-project.org/talk_schedule/Suthira Owlarn has collated more conference materials here – https://github.com/sowla/useR2019-materials.

So I wish you interesting R adventures and I hope to see you soon at LondonREARL or on Twitter!