Rapp is an R front-end (like Rscript) that turns simple scripts into polished CLIs, with automatic argument parsing, generated help, and support for commands and installable launchers
mirai 2.6.0 brings an HTTP launcher for cloud and Posit Workbench, a C-level dispatcher for near-zero overhead task dispatch, and new tools for racing and debugging async tasks
dplyr 1.2.0 comes with much faster and more memory efficient `if_else()` and `case_when()` functions!
nanonext 1.8.0 adds a low-level streaming HTTP/WebSocket server to R's web infrastructure, with TLS support, new async primitives, and redesigned documentation
dplyr 1.2.0 fills in some important gaps in dplyr's API: we've added a new complement to `filter()` focused on dropping rows, and we've expanded the `case_when()` family with three new recoding and replacing functions!
The new release of ragnar adds faster ingestion, new embedding providers, improved retrieval, and new integrations for using ragnar stores from tools
The next version of plumber2 has hit CRAN. Read all about the new features such as OpenTelemetry (OTEL) support, authentication, new tags, and performance improvements here
orbital 0.4.0 is on CRAN! orbital now has post processing support
We’re pleased to announce two new YAML 1.2 packages: `yaml12` for R and `py-yaml12` for Python. Both are implemented in Rust and designed for fast, predictable YAML 1.2 parsing, with safe opt-in tag handling and document stream support
tidypredict 1.0.0 brings faster computations for tree-based models, more efficient tree representations, glmnet model support, and a change in how random forests are handled
Two new tidymodels packages focus on supervised feature selection
ellmer 0.4.0 includes important lifecycle updates, new Claude features (caching, file uploads, web tools), OpenAI improvements, and enhancements to error handling, pricing tracking, and security
testthat 3.3.0 brings improved expectations with better error messages, new expectations for common testing patterns, and lifecycle changes including the removal of `local_mock()` and `with_mock()`. It also includes a write-up of my experience doing package development with Claude Code
The latest version of pkgdown automatically builds markdown files that make it easy for LLMs to use your website
A new version of tune brings significant updates for model tuning and parallel processing
This release deprecates `str_like(ignore_case)` and changes the behaviour of `str_replace_all()` for function replacements. It also introduces `str_ilike()` for case-insensitive SQL-like pattern matching, three new case conversion functions (`str_to_camel()`, `str_to_snake()`, and `str_to_kebab()`), and preserves names in all relevant functions
This release tightens up the package by removing long-deprecated functions, making `map_chr()` and predicate functions more type-safe, and requiring a newer version of carrier to make `in_parallel()` use easier. It also includes performance improvements to `every()`, `some()`, and `none()`, as well as a new getting started vignette
This post discusses one function in ggplot2: `theme()`. Find out about the glamour of graphics in this deep-dive article
plumber2, a complete rewrite of plumber, has landed on CRAN, providing a modern, future proof solution for creating web servers in R. Read all about the new features here
A new major version of ggplot2 has been released on CRAN. Find out what is new here
mirai - minimalist async evaluation framework for R - brings production-grade parallel and distributed computing to the ecosystem
nanonext is a communications and concurrency toolbox that facilitates fast, powerful and reliable data exchange in polyglot data science workflows
ragnar 0.2 introduces a tidy, transparent toolkit for building Retrieval-Augmented Generation (RAG) pipelines in R
The newest version of ellmer introduces a simpler `chat()` interface that can works with any provider, a bunch of improvements to tool calling, and a handful of smaller quality of life improvements
The newly released mcptools package makes coding assistants better at writing R code and applications built with ellmer more powerful
httr2 1.2.0 improves security for redacted headers, improves URL parsing and building, enhances debugging, and includes a bunch of other quality of life improvements
webR 0.5.4 brings the latest version of R to the browser, with sharing URLs, an upgraded Emscripten runtime, and filesystem support for JupyterLite
The functional programming toolkit for R gains new capabilities for parallel processing and distributed computing using mirai
The first release of vitals, a package for large language model evaluation in R, just made it to CRAN
duckplyr 1.1.0 is on CRAN! A drop-in replacement for dplyr, powered by DuckDB for speed. It is the most dplyr-like of dplyr backends
ellmer 0.2.0 lands with a swag of upgrades: Garrick Aden‑Buie joins the team, we make a couple of breaking changes, and add serious scale with `parallel_chat()` and `batch_chat()`. A new `params()` helper standardises model settings across providers and chats now report how much they cost. The release also tidies `chat_*` names, bumps default models and adds Hugging Face, Mistral AI, and Portkey connectors
A new release of svglite has arrived, and with it full support for all the latest capabilities of the R Graphics Engine. Further, it finalizes the new approach to handling web fonts and font embedding in the created SVGs
This release brings changes for strings_as_factors, step_select(), step_dummy(), and step_impute_bag()
The new 1.4.0 release of the scales package adds some colourful updates. Read about colour manipulation, palettes and new label functions
This release brings more flexibilty to the grouping of bootstrap confidence intervals. It also contains many contributions from the tidyverse developer day
The tidymodels ecosystem now fully supports sparse data as input, output, and in creation
nanoparquet 0.4.0 comes with a new and much faster `read_parquet()`, configurable type mappings in `write_parquet()`, and a new `append_parquet()`
httr2 1.1.0 introduces powerful new streaming capabilities with `req_perform_connection()`, as well as comprehensive URL manipulation tools, improved AWS support, and a bunch of bug fixes
orbital 0.3.0 is on CRAN! orbital now has classification support
S7 is a new package that simplifies object-oriented programming (OOP) in R. It combines the simplicity of S3 with the structure of S4 to create a clearer system that's accessible to everyone
patchwork 1.3.0 has just been released bringing refinements to the `free()` function and full on support for gt tables
recipes 1.1.0 is on CRAN! recipes now have better input checking and quality of life errors
pkgdown 2.1.0 includes two major new features: support for quarto vignettes and a "light switch" that lets the reader switch between light and dark mode. It also contains a bunch of other improvements to both the user and the developer experience
A new release of the parsnip extension package bonsai introduces support for oblique random forests for classification and regression to tidymodels
Nanoparquet is a new R package that can read and write (flat) Parquet files. This post covers its features and limitations
The initial release brings markdown awareness to grid and ggplot2 to allow for rich text formatting in R graphics
While we've written about survival analysis and machine learning fairness already, the newest tune release includes a number of other major changes
Join the tidyverse team in Seattle on August 15 for a day of fun and programming to improve the tidyverse!
dbplyr 2.5.0 brings improved syntax for referring to tables nested in schemas and catalogs along with a bunch of minor SQL generation improvements
webR 0.3.1 is now available at npm, GitHub, and via CDN. Take a look at what's new in this release
Introducing a new polar coordinate system that supersedes the old `coord_polar()`. Read on about the new `coord_radial()`
The 3.5.0 version of ggplot2 comes with an overhaul of the guide system. Read here what is new for axes
The 3.5.0 version of ggplot2 comes with an overhaul of the guide system. Read here what is new for legends
ggplot2 3.5.0 is now on CRAN. Discover what is new in this release
This release fixes a bunch of annoyances and catches up with innovations in DBI and dbplyr
withr is the tidyverse solution for automatically cleaning up after yourselves (temporary files, options, etc). This milestone makes withr much faster
This release automatically warns if you forget to export an S3 method, regenerates the `NAMESPACE` before documenting the rest of the package, and does a better job generating aliases for the package documentation topic
scales 1.3.0 is a minor release focusing on streamlining the API and gradual improvements of the existing utilities
httr2 is the successor to httr, providing a pipeable interface to generate HTTP requests and handle the responses. It's focussed on the needs of an R user wrapping a modern web API, but is flexible enough to handle just about any HTTP related task
dbplyr 2.4.0 brings improvements to SQL generation, better control over the generated SQL, some new translations, and a bunch of backend specific improvements
Catch up on the last two years of testthat development which includes improved documentation, new expectations, a new style for error snapshots, support for mocking, a new way to detect if a test has changed global state, and a handful of UI improvements
pak installs R packages from various sources. pak is fast, safe and convenient. This post shows the improvements in system requirements support on Linux, in the just released pak 0.6.0 version
The latest releases of rsample and tune provide a new interface to validation sets as a three-way split
gmailr 2.0.0 streamlines the auth process and makes it easier to use gmailr in a cloud or deployed context
The desirability2 package, for multivariable optimization, is now on CRAN
censored 0.2.0 is on CRAN! censored has two new engines for random forests and parametric survival models
dplyr 1.1.1 is on CRAN! This patch release includes a number of performance regression fixes along with refinements to the multiple match join warnings that result in warnings being thrown much less often
Now including lubridate!
dtplyr brings initial support for dplyr 1.1.0 features, new translations, and a breaking change
This final post contains a grab-bag of new features, including: `pick()` for column selection inside of data-masking functions, `reframe()` as the new home for `summarise()`'s multi-row behavior, and major performance improvements to `arrange()`
All of the dplyr vector functions, like `between()` and `case_when()`, are now powered by vctrs. We've also added two powerful new helpers: `case_match()` and `consecutive_id()`
dplyr now supports an experimental per-operation grouping syntax. This serves as an alternative to `group_by()` and always returns an ungrouped data frame, meaning that you never need to remember to `ungroup()`
In dplyr 1.1.0, joins have been greatly reworked, including a new way to specify join columns, support for inequality, rolling, and overlap joins, and two new quality control arguments
There are no major new features in this version of forcats, but the 1.0.0 label now clearly advertises that this a stable member of the tidyverse
tidyr 1.3.0 brings a new family of string separating functions, along with improvements to `unnest_longer()`, `unnest_wider()`, `pivot_longer()`, and `nest()`
dbplyr 2.3.0 brings improvements to SQL generation, improved error messages, a handful of new translations, and a bunch of backend specific improvements
purrr 1.0.0 brings a basket of updates. We deprecated a number of seldom used functions to hone in on the core purpose of purrr and implemented a swath of new features including progress bars, improved error reporting, and much much more!
Tidyclust is on CRAN. tidyclust provides a common interface for specifying clustering models, in the same style as parsnip
It's been a long three years but a new version of stringr is now on CRAN! This release includes a bunch of small but useful new functions and some increased consistency with the rest of the tidyverse
Model Calibration is coming to tidymodels. This post covers the new plotting functions, and our plans for future enhancements
dplyr 1.1.0 is coming soon! This post introduces some of the exciting new features coming in 1.1.0, and includes a call-for-feedback as we finalize the release
ggplot2 3.4.0 is now on CRAN. Read all about the (mostly internal) changes that make up this release
tidyselect 1.2.0 hit CRAN last week and includes a few updates to the syntax of selections in tidyverse functions
parsnip 1.0.2 includes a number of changes to how the package checks model specifications, improving error messages and tightening integration with its extension packages
Version 0.2.0 of brulee introduces learning rate schedulers
Some models store information in locations that cannot be saved via regular R serialization. The new bundle package provides a consistent interface for bundling model objects with their references so that they can be safely saved and re-loaded in production
censored 0.1.0 is a new tidymodels package for survival models
rsample 1.1.0 is now on CRAN! This release provides a ton of new functions for grouped resampling, as well as a few long-awaited utility functions
lintr 3.0.0 is a major release featuring a more consistent API for using linter and dozens of new linters included
A new parsnip extension package for tree-based models is now on CRAN
spatialsample 0.2.0 is now on CRAN! This release provides a bunch of new features, including new spatial resampling methods, visualization helpers, and spatial buffering
We are thrilled to announce the release of vetiver, a framework for MLOps tasks in R and Python. Use vetiver to version, share, deploy, and monitor a trained model
This release brings improvements to SQL translation, a new way of getting local data into the database, and support for dplyr's family of row modification functions
roxygen2 7.2.0 brings improvements to `NAMESPACE` generation, better multiparameter argument inheritance, and improved warnings
The three extension packages for recipes were recently updated on CRAN adding new steps, features and bug fixes
haven 2.5.0 adds support for custom character widths, creates FDA-compliant XPT files, and can use Stata's `strL` variable type
scales 1.2.0 brings a number of small but useful improvements to numeric labels
readxl 1.4.0 is a maintenance release with practically no user-facing changes, but extensive change to package internals
The parsnip package and six of its extension packages were recently updated on CRAN. One of the extensions is a new package for fitting multilevel statistical models
A new release of the usemodels package makes it even easier to use tidymodels
Recipes has added a few new steps along with many improvements
tidyr 1.2.0 includes a bunch of new features and bug fixes, particularly for pivoting, rectangling, and grid specific tools
rlang 1.0.0 is near and introduces a new style of error display. Feedback welcome!
dtplyr 1.2.0 adds three new authors, a bunch of tidyr translations, new join translations, and many minor translation improvements
pkgdown 2.0.0 includes a major refresh of the default template (now using bootstrap 5), many new ways to customise your site, improvements to code styling, and much, much, more
cli 3.1.0 introduces customizable color palettes plus it comes with a number of other smaller improvements
readr 2.1.0 is now on CRAN. This post explains the change for default reading to be eager rather than lazy
archive 1.1.2 is now on CRAN! archive lets you work with file archives, such as ZIP, tar, 7-Zip and RAR and compression formats like gzip, bzip2, XZ and Zstandard
We are renaming the default branch of many Git(Hub) repositories and this post explains how contributors can adapt, using new functionality in usethis
testthat 3.1.0 brings improvements to snapshot testing and one breaking change
waldo 0.3.0 improves the display of data frame differences, and gives the objects being compared the ability to control the detail of their comparisons
The first major release of infer, a package implementing a unified approach to statistical inference, is now on CRAN
bigrquery 1.4.0 fixes a bug in `bq_table_download()`
Version 1.0.0 marks the graduation of googlesheets4 from experimental to stable
This major release of readr includes a new multi-threaded parsing engine powered by vroom and a number of user interface improvements
googledrive 2.0.0 adapts to Drive's pivot from Team Drives to shared drives and its shift to a "single parent" model of file organization
gargle has seen a lot of development over the past two years and five releases: cache relocation, credential rolling, a new auth method, an improved user interface, better verbosity control, and retries
This major release of vdiffr includes an updated SVG engine and integrates with the snapshot management mechanism of testthat 3
This version provides much improved `labelled_spss()` support, improved date-time handling, the latest ReadStat, and a bunch of other small improvements
The new version of recipes contains several helpful improvements
reprex is now much easier to use on RStudio Server and RStudio Cloud
Introducing, clock, a new package for working with date-times
A new package for evaluating many models at once is now on CRAN, along with a corresponding update to the tidyposterior package
The latest version of rvest brings new tools for extracting text, a radically improved `html_table()`, and a bunch of interface changes to better align rvest with the rest of the tidyverse
We've recently released a bunch of improvements to dplyr backends. multidplyr, which allows you to spread work across multiple cores, is now on CRAN. dtplyr adds translations for dplyr 1.0.0 and fixes many bugs. dbplyr 2.1.0 adds translations for many tidyr verbs, gains an author, and has improved `across()` translations
The lifecycle package documentation received a major overhaul based on what I learned preparing for my rstudio::global keynote
svglite 2.0.0 is now on CRAN. This is a huge feature release and part rewrite, and should excite anyone who cares about vector graphics. Read on to find out what is new!
Minor release with major performance improvements for `across()` and two new functions `if_any()` and `if_all()`
We've never blogged about reprex before, so the release of v1.0.0 seems like a good occasion for it
This is a big release aimed at improving usability, especially around Git and GitHub functionality
A new version of corrr features noteworthy improvements
finetune is a new package that adds a few more model tuning methods
Introducing ensemble learning to the tidymodels
With version 0.1.2 of tune, there are more options for parallel processing
A new version of the tune package contains numerous new features
A new version of the magrittr package brings laziness, better performance, and leaner backtraces for debugging errors
dbplyr 2.0.0 adds missing features from dplyr 1.0.0, numerous improvements to SQL translation (including new Amazon Redshift and SAP HANA backends), and an improved system for extending dbplyr to work with other databases
testhat 3.0.0 brings a raft of major improvements including snapshot testing and parallel testing. It also includes a new "edition" that allows you opt-in to a set of substantial improvements that are not backward compatible
A new version of the recipes package contains a signficant API update and some additional features
furrr 0.2.0 is now on CRAN!
waldo is a new package that makes it easier to see the differences between a pair of complex R objects
The newest release of readr brings improved argument consistency, better messages and more flexible output options
This October, help us expand an open source, multilingual glossary of data science terms
The new usemodels R package is a helpful way to automatically generate tidymodels code
A step by step guide to create a package for a learnr tutorial
workflows 0.2.0 is now on CRAN!
This release mostly contains bug fixes and minor improvements, but it now uses the downlit and ragg packages for syntax highlighting and graphical output, respectively
An open source multilingual glossary of data science terms
The palmerpenguins data package is now on CRAN! Here are some examples to highlight why it is a great replacement for the iris dataset
The gtsummary package is for making beautiful summary tables with R, in R Markdown documents
The newest release of broom features many new tidier methods, bug fixes, and improvements to internal consistency
A new version of the tune package brings better visualizations, engine-specific parameter tuning, and other features
A new version of parsnip bring improvements in how predictors are handled and a few other neat features
Version 0.1.13 of recipes is on CRAN
An update to embed adds two new steps
haven now uses vctrs which means labelled classes will be preserved in tidyr and dplyr operation
dplyr 1.0.0 is now available from CRAN!
tidyr 1.1.0 includes a bunch of quality of life improvements, particularly for pivoting and rectangling
The rules package is on CRAN and enables rule-based models for tidymodels
We have recently updated some of our low-level graphics packages. Read on about what is new in ragg and systemfonts
Learn about two last-minute additions to dplyr 1.0.0: a chattier `summarise()` with more options for controlling grouping of output, and new row manipulation functions inspired by SQL
dplyr 1.0.0 is scheduled for release on May 15. This blog post talks about what package maintainers can do to prepare
dplyr now makes heavy use of [vctrs](http://vctrs.r-lib.org/) behind the scenes. This brings with it greater consistency and (hopefully!) more useful error messages
Three new tidymodels packages, baguette, poissonreg, and plsmod, were just released on CRAN
`rowwise()` has been renewed and revamped to make it easier to perform operations row-by-row. This makes it much easier to solve problems that previously required `lapply()`, `map()`, or friends
tibble 3.0.0 is on CRAN now! Tibbles are a modern reimagining of the data frame, keeping what time has shown to be effective, and throwing out what is not, with nicer default output too! This article describes the latest major release and provides an outlook on further developments
A new `across()` function makes it much easier to apply the same operation to multiple columns. It supersedes the `_if()`, `_at()`, and `_all()` function variants
`select()` and `rename()` can now select by position, name, function of name, type, and any combination thereof. A new `relocate()` function makes it easy to change the position of columns
In `summarise()`, a single summary expression can now create both multiple rows and multiple columns. This significantly increases its power and flexibility
A minor roxygen2 release with some new features
This post focusses on the idea of the "function lifecycle" which helps you understand where functions in dplyr are going. Particularly important is the idea of a "superseded" function. A superseded function is not going away, but we no longer recommend using it in new code
The next iteration of ggplot2 has just been released on CRAN, packed with new features and bug fixes. Read all about what's new here
Announcing the release of forcats 0.5.0 on CRAN
themis 0.1.0 is now available on CRAN. Provides additional steps for recipes to deal with unbalanced data
slider 0.1.0 is now available on CRAN. It provides a family of general purpose sliding window functions
vroom 1.1.0 is now on CRAN!
hardhat 0.1.0 is now available on CRAN. It provides tools for developing new modeling packages, with a focus around preprocessing, predicting, and validating input
odbc 1.2.0 is now on CRAN. It includes improvements to dealing with schemas, an API for immediate execution, and a new parameter to control timezone outputs
tidyverse 1.3.0 is on CRAN, and has a paper in the Journal of Open Source Software! This should make it easier to cite tidyverse packages
scales 1.1.0 now available on CRAN. It includes a new naming scheme (with `breaks_` and `labels_` prefixes) and greatly improved documentation
A massive update to roxygen2 now on CRAN
A total rewrite of dtplyr is now available on CRAN; it performs computation lazily (like dbplyr), making it much more performant
A new version of haven makes it easy to read only parts of a file
A major update of the styler package is available on CRAN now
The first version of discrim (0.0.1) is on CRAN
A major update to the tuning parameter package
Make package development easier by providing R functions that simplify and expedite common tasks
The latest updates to the tidymodels packages
gmailr v1.0.0 is on CRAN
googledrive v1.0.0 is on CRAN
gargle is now on CRAN
A set of new graphic devices just landed on CRAN. Read more about the ragg package here
callr 3.3.0 is now on CRAN
dplyr 0.8.3 is now on CRAN
dplyr 0.8.2 is now on CRAN
rlang 0.4.0 is now on CRAN!
ggplot2 3.2.0 is now on CRAN!
How to avoid resource leaks in C code in R packages? Introducing the cleancall package
dplyr 0.8.1 is now on CRAN
What's new in forcats 0.4.0?
Introducing the vroom package, extremely fast data import in R
A look inside of the parsnip package
Highlights include that `context()` is now optional, and new `expect_invisible()` and `expect_mapequal()` expectations
usethis 1.5.0 is now on CRAN
tibble 2.1.1 is on CRAN now! This article describes and motivates the latest minor release of the tibble package
stringr 1.4.0 is now on CRAN!
haven 2.1.0 is now on CRAN!
dplyr 0.8.0 is now on CRAN
bigrquery 1.1.0 is now on CRAN
purrr 0.3.0 is now on CRAN
Tibbles are a modern reimagining of the data frame, keeping what time has shown to be effective, and throwing out what is not, with nicer default output too! This article describes the latest major release and provides an outlook on further developments
rlang 0.3.1 is now on CRAN
dbplyr 1.3.0 is now on CRAN
vdiffr 0.3.0 is now on CRAN
haven 2.0.0 is now on CRAN
readr 1.3.1 is now on CRAN
textrecipes 0.0.1 is now on CRAN!
lobstr is now on CRAN. lobstr provides tools that allow you to dig into the detail of an object
readxl 1.2.0 is now on CRAN
httr 1.4.0 is now on CRAN!
pkgdown 1.3.0 is now on CRAN!
What you need to know about upcoming changes in dplyr 0.8.0
A variety of updates for tidymodels packages
A tidy unified interface to models
The upcoming tibble 2.0.0 release has internal changes relevant to package developers who depend on tibble
Reduce package dependencies by using common lightweight S3 generics
API for working with tidy evaluation, base R types, and errors
ggplot2 3.1.0 is now on CRAN!
Run external processes with processx
scales 1.0.0 is now on CRAN
roxygen2 6.1.0 is now on CRAN!
tidymodels 0.0.1 is on CRAN
Using tidy evaluation in ggplot2 3.0.0
broom 0.5.0 is on CRAN
ggplot2 3.0.0 is on CRAN
haven 1.1.2 is now on CRAN
bench 1.0.1 is now available on CRAN. bench allows you to benchmark code, by tracking execution time, memory allocations and garbage collections
dplyr 0.7.5 has reached CRAN. This is mostly a bugfix release with two important new changes
pkgdown 1.1.0 is now on CRAN
What you need to know about upcoming changes for ggplot2 2.3.0
pillar 1.2.2 is on CRAN now, losing that extra dot for whole numbers and those extra zeros when there's nothing more to see. If you still prefer the good old data frame output, this post shows how to get it back for tibbles too
readxl 1.1.0 is now on CRAN
rlang 0.2.0 is on CRAN! This version brings many improvements to tidy evaluation: improved !! syntax and printing of quosures in colours
pillar 1.2.1 is on CRAN now, a minor update that tweaks the output of tibbles again
usethis 1.3.0 is now on CRAN
stringr 1.3.0 is now on CRAN
A new version of forcats is now on CRAN
tibble 1.4.2 is on CRAN now, a minor update adding options and improving performance
fs 1.0.0 is now available on CRAN. fs provides a cross-platform, uniform interface to file system operations
New version now on CRAN. It features new database backends, an enhanced copy_to(), and initial stringr support
Tibbles are a modern reimagining of the data frame, keeping what time has shown to be effective, and throwing out what is not, with nicer default output too! This article showcases the changes in the most recent version
styler, a package that can format your code according to the tidyverse style guide, is now on CRAN
withr 2.1.0 is now available on CRAN
A new version of the tidyverse package is now on CRAN
A new version of lubridate is on CRAN!
glue 1.2.0 is now available on CRAN. glue is designed to make it easy to interpolate ("glue") your data into strings
We have updated tidyselect to revert a behaviour introduced in tidyr 0.7.0
The first release of googledrive is now on CRAN. Operate on Google Drive files from R
The next installment of tidyr is finally on CRAN! This version brings tidy eval to a crucial component of the tidyverse workflow
A new version of purrr is on CRAN! It features a new family of generic mappers, a tool for tidy plucking of deep data structures, and many other features and fixes