The Rstudio team threw a solid conference 01/14/2019 - 01/18/2019 in Austin Texas. At one point I heard a conference speaker same something like, “R has something for everyone.” Trying to please everyone is risky, but Rstudio pulled it off.

A lot of sessions focused on exploratory data analysis, data visualization, and statistical modeling. These sessions targeted those fitting the Data Scientist mold. Besides Data Scientists, the conference consisted of Academia, Researchers, and Software Developers.

I attended one of academic sessions called , “Introductory Statistic with R”. Prof Bodwin explained how she integrates R with her introductory statistics course. She’s an advocate for integrating R or some statistical programming into curriculum. I’m a strong advocate for this too. I first encountered R in Grad school. Using R accelerated my learning and amplified my productivity. For example, I didn’t need to flip through verbose charts to find t-critical values. Instead, I ran a simple R function.

qt(.995, 12)
## [1] 3.05454

I like what Prof Bodwin is doing and agree that instructors should integrate R or some statistical programming into curriculum as early and as often as possible.

The attendees with a Developer/IT focus (I’m in this group) had plenty to learn as well. I attended the two day class “Shiny in Production | Data Products at Scale Workshop”. The class had it’s fair share of “ah ha” and “I wish I knew that 6 months ago” moments. For example, we explored the testing package shinytest. I could have saved many hours of testing had I used an automated test with shinytest instead.

The other big highlights of the workshop were:

  • Profiling - The profvis package helps profile and identify the bottlenecks in R code. One can also profile an entire shiny app with a single profvis call:
  runApp("/path to app")
  • Deployment - Rstudio connect reduces administrative toil
  • Load testing - The shinyloadtest package lets developers simulate multi-user sessions. Built-in reporting shows how an app performs under load. The class example app performed well with one user, but started to experience latency at 25 users.
  • Plot Caching - Multi-User apps can experience performance issue related to plot rendering. Instead of re-rendering the same plot for each user, we can use caching. This pattern requires minor code changes.
# No Caching
output$plot <- renderPlot({
ggplot(diamonds, aes(carat, price, color = !!input$color_by)) +
With Caching
  • Alternatives to Shiny Apps - R markdown docs and plumber APIs excel over Shiny in certain use cases. If users want a copy of the analysis or results sent to email, then R Markdown might be the best tool for the job. If a statistical R model needs outside integration, then use a plumber API . We used this decision matrix for comparing Shiny vs. R Markdown:

Main conference takeaways

Thursday and Friday consisted of keynotes and 20 minute breakout sessions. Joe Cheng, the creator of Shiny, presented " Shiny in production: Principles, practices, and tools“. It was recap of the two day workshop I had attended, but it was still nice to hear Joe’s vision for Shiny. I also appreciated the Cran Whales App. Professor Felienne presented her Friday keynote”Explicit Direct Instruction in Programming Education“. Her research found explicit direct instruction is more effective than exploratory learning. I couldn’t relate. I have always learned more from exploring then from explicit instruction.

For the final keynote, David Robinson gave advice on engaging with the R community. David recommended the following:

  • blog
  • present at conferences
  • respond to questions on social media or stack overflow
  • contribute to an open source project
  • write a book

The breakout sessions were good but the 20 minute layout didn’t leave much room for topic depth. Each speaker had enough time to briefly explain the topic, run a couple demos, and answer a few questions. Speakers kept topics at the surface level out of necessity.

My favorite breakout sessions were:

  • “pagedown: Creating Beautiful PDFs with R Markdown + CSS” by Yihui Xie.  Xie’s knitr and R markdown packages have improved my efficiency. (I wrote this post in R markdown and converted to html using knitr).
  • “Democratizing R with Plumber APIs” by James Blair.  Blair’s talk had a great use case for the plumber API package. He published a predictive model to an API then told his buddy, a mobile developer, about it. His buddy asked for credentials and a day or two later came back with an IOS Swift app making calls to the API. The story highlighted the potential for collaboration between Data Scientist and Software Development.
  • “Introducing ipc for Shiny” and Ian Fellows.  Mr. Fellow’s demos effectively illustrated the use of asynchronous programming patterns.

I enjoyed my experience at Rstudio 2019. It was hard leaving 50-70 degree weather in Austin for 10-20 degree in weather in Omaha. I also missed the electric scooters scattered everywhere. I zipped around on these through the downtown area during conference breaks. They were fun and convenient, “Omaha could use these”, I thought to myself. I checked the Omaha World Herald on Monday morning and was pleasantly surprised.