Publications by rstats | Emily Riederer

Column Names as Contracts

05.09.2020

Software products use a range of strategies to make promises or contracts with their users. Mature code packages and APIs document expected inputs and outputs, check adherence with unit tests, and transparently report code coverage. Programs with graphical user interfaces form such contracts by labeling and illustrating interactive components to ...

14706 sym R (9052 sym/13 pcs) 4 img

crosstalk: Shining without Shiny

11.09.2020

This week, I was pleased to become an official RStudio Certified Instructor after completing Greg Wilson’s training program, based on his excellent book Teaching Tech Together. Part of the certification process involved teaching a 10 minute lesson. I chose to create a brief introduction to using the crosstalk package for dynamic interaction a...

3835 sym 2 img

Introducing the {convo} package

29.12.2020

Back in September, I wrote about how controlled vocabularies can help form contracts between data producers and consumers. In short, I argued that aligning on an ontology of stub names for use naming variables in a dataset can improve data documentation, validation, and wrangling with minimal overhead. However, all of these benefits assume absol...

7677 sym R (3131 sym/13 pcs) 6 img

Generating SQL with {dbplyr} and sqlfluff

15.01.2021

Declarative programming languages such as HTML, CSS, and SQL are popular because they allow users to focus more on the desired outcome than the exact computational steps required to achieve that outcome. This can increase efficiency and code readability since programmers describe what they want – whether that be how their website is laid out (w...

8737 sym R (11790 sym/19 pcs)

Building a team of internal R packages

20.01.2021

Note: this post is a written version of my rstudio::global 2020 talk on the same topic. Please see the link for the slides and video version. I do elaborate on a few points here that I cut from the talk; if you’ve already watched the talk and just want the delta, please see the sections in blue More and more organizations are beginning to writ...

40952 sym R (3483 sym/12 pcs) 28 img

Workflows for querying databases via R

13.07.2021

Simple, self-contained, reproducible examples are a common part of good software documentation. However, in the spirit of brevity, these examples often do not demonstrate the most sustainable or flexible workflows for integrating software tools into large projects. In this post, I document a few mundane but useful patterns for querying databases ...

6758 sym R (3119 sym/16 pcs)

A lightweight data validation ecosystem with R, GitHub, and Slack

25.08.2021

Data quality monitoring is an essential part of any data analysis or business intelligence workflow. As such, an increasing number of promising tools1 have emerged as part of the Modern Data Stack to offer better orchestration, testing, and reporting. Although I’m very excited about the developments in this space, I realize that emerging produ...

10236 sym R (1820 sym/6 pcs) 6 img

How to Make R Markdown Snow

10.12.2021

Last year, I tweeted about how to spread holiday cheer by letting your R Markdown documents snow. After all, what better to put people in the holiday spirit than to add a random 5% probability that whatever part of a document they are trying to read will be covered? No one:Absolutely no one:Me: SO, I know we can\’t have a holiday party this ye...

4612 sym R (300 sym/5 pcs) 2 img

Using databases with Shiny

01.01.2022

Shiny apps are R’s answer to building interface-driven applications that help expose important data, metrics, algorithms, and more with end-users. However, the more interesting work that your Shiny app allows users to do, the more likely users are to want to save, return to, and alter some of the ways that they interacted with your work. This c...

11686 sym R (2180 sym/9 pcs) 2 img