What’s New in R: March 16, 2026
Welcome to this week’s edition of What’s New in R! This week, we’re featuring a hands-on walkthrough of the new {dplyr} 1.2.0 functions, a tip for placing text annotations directly onto {ggplot2} plots, and a new package for creating publication-ready tables in Typst. Let’s dive in!
Trying out dplyr 1.2.0
Crystal Lewis provides a practical, hands-on companion to last week’s {dplyr} 1.2.0 announcement, working through the new functions using real examples from her own data wrangling code. She walks through filter_out() as a cleaner alternative to the convoluted NA-handling logic that filter() requires when dropping rows, and then methodically explores each of the new recoding functions—recode_values(), replace_values(), and replace_when(). Particularly useful is her demonstration of recode_values() with an external lookup table (like a data dictionary), which replaces the previously cryptic recode() + !!! pattern with something far more readable. If you want to see these new functions applied to concrete, relatable examples, this post is a great complement to the official release notes.
Placing annotations anywhere on a {ggplot2} plot with I()
Evangeline “Gina” Reynolds highlights a handy feature introduced in {ggplot2} v3.5: using I() with x and y aesthetics inside annotate() to place text anywhere on the plot panel using a simple 0-to-1 coordinate system. Instead of having to think about where your annotation falls within your data’s axis limits, you can now think purely in terms of plot space—x = I(0.2) places it 20% of the way across horizontally, and y = I(0.9) places it 90% of the way up vertically. This makes high-level annotations—ones that serve as general descriptors rather than labels tied to specific data points—much easier to place precisely and consistently across different plots.
{typstable}
Filip Reierson introduces {typstable}, a package designed specifically to produce publication-ready tables for Quarto documents targeting the Typst format. Anyone who has tried to get nicely styled tables into Typst-rendered PDFs knows the frustration of packages like {gt} not carrying their styling over cleanly—{typstable} is built from the ground up to solve exactly that problem. Starting from a simple tt() function to create a basic table, the package offers a pipe-friendly API for formatting specific columns, rows, and cells; controlling column widths; adding spanning headers; and grouping rows—all with styling that renders faithfully in Typst. If you use Quarto with Typst for PDF output, this package is well worth checking out.
If you enjoyed this issue of What’s New In R, please share it with a friend! And if they want to get What’s New in R directly in their inbox, they can sign up on the R for the Rest of Us website.
Got any ideas for resources I should feature in future issues of What’s New in R? Leave a comment below!
Sign up for the newsletter
Get blog posts like this delivered straight to your inbox.
You need to be signed-in to comment on this post. Login.