Davis Vaughan
@davisvaughan.bsky.social
Building tools for R users, these days mostly in Rust 🦀
https://blog.davisvaughan.com
https://github.com/DavisVaughan
https://blog.davisvaughan.com
https://github.com/DavisVaughan
`when_any()` allows you to write `filter()`s that combine conditions with `|` rather than with `&`. This is so nice because your conditions stay comma separated, rather than having to squish them into one giant condition that uses `|` and adds extra layers of parentheses.
November 7, 2025 at 4:03 PM
`when_any()` allows you to write `filter()`s that combine conditions with `|` rather than with `&`. This is so nice because your conditions stay comma separated, rather than having to squish them into one giant condition that uses `|` and adds extra layers of parentheses.
We are looking for #rstats community feedback on 3 new dplyr functions!
We're aiming to expand the `filter()` family:
- `filter()` to keep rows
- `filter_out()` to drop rows
- `when_any()` and `when_all()` as modifiers
Read more and leave feedback here:
github.com/tidyverse/ti...
We're aiming to expand the `filter()` family:
- `filter()` to keep rows
- `filter_out()` to drop rows
- `when_any()` and `when_all()` as modifiers
Read more and leave feedback here:
github.com/tidyverse/ti...
November 7, 2025 at 4:03 PM
We are looking for #rstats community feedback on 3 new dplyr functions!
We're aiming to expand the `filter()` family:
- `filter()` to keep rows
- `filter_out()` to drop rows
- `when_any()` and `when_all()` as modifiers
Read more and leave feedback here:
github.com/tidyverse/ti...
We're aiming to expand the `filter()` family:
- `filter()` to keep rows
- `filter_out()` to drop rows
- `when_any()` and `when_all()` as modifiers
Read more and leave feedback here:
github.com/tidyverse/ti...
Behold, the RStudio Yeti!
October 11, 2025 at 3:56 PM
Behold, the RStudio Yeti!
September 19, 2025 at 1:36 PM
Air is our incredibly fast R code formatter!
Come learn all about it at 2:40pm in Regency V in the Sparking Development Joy session!!
We also have hex stickers!
#positconf2025 #rstats
Come learn all about it at 2:40pm in Regency V in the Sparking Development Joy session!!
We also have hex stickers!
#positconf2025 #rstats
September 17, 2025 at 2:55 PM
Air is our incredibly fast R code formatter!
Come learn all about it at 2:40pm in Regency V in the Sparking Development Joy session!!
We also have hex stickers!
#positconf2025 #rstats
Come learn all about it at 2:40pm in Regency V in the Sparking Development Joy session!!
We also have hex stickers!
#positconf2025 #rstats
Because it's just a markdown document, I had the idea that maybe you can tell an AI about the extrachecks list and have it analyze your project for you. It's not a guaranteed success, but it's probably a reasonable first pass? I'd still personally double check everything manually too.
September 4, 2025 at 12:46 PM
Because it's just a markdown document, I had the idea that maybe you can tell an AI about the extrachecks list and have it analyze your project for you. It's not a guaranteed success, but it's probably a reasonable first pass? I'd still personally double check everything manually too.
If you've been curious about Air and you're at #useR2025, come watch @lionelhenry.bsky.social and me talk all about it at 1pm in Penn 2!
August 10, 2025 at 11:31 AM
If you've been curious about Air and you're at #useR2025, come watch @lionelhenry.bsky.social and me talk all about it at 1pm in Penn 2!
If you've found yourself in the middle of a `case_when()` going, "oh shit, did I cover all of those cases??", then I think you'll REALLY like the new `unmatched` argument of `recode_values()`!
Here we catch a `0` that wasn't matched by any Likert score code in our lookup table.
Here we catch a `0` that wasn't matched by any Likert score code in our lookup table.
August 5, 2025 at 1:48 AM
If you've found yourself in the middle of a `case_when()` going, "oh shit, did I cover all of those cases??", then I think you'll REALLY like the new `unmatched` argument of `recode_values()`!
Here we catch a `0` that wasn't matched by any Likert score code in our lookup table.
Here we catch a `0` that wasn't matched by any Likert score code in our lookup table.
If you find yourself doing `x = case_when(..., .default = x)` to "partially replace" a few values within a column, I think you'll like `replace_values()`!
August 5, 2025 at 1:43 AM
If you find yourself doing `x = case_when(..., .default = x)` to "partially replace" a few values within a column, I think you'll like `replace_values()`!
If you find yourself still reaching for `dplyr::recode(x, !!!values)` or `plyr::mapvalues()`, then I think you'll like `recode_values()`!
August 4, 2025 at 9:44 PM
If you find yourself still reaching for `dplyr::recode(x, !!!values)` or `plyr::mapvalues()`, then I think you'll like `recode_values()`!
💨💨 Air 0.7.0 is out now! 💨💨
If you haven't heard, Air is a very fast R formatter!
Read our blog post to learn about:
- Enhanced Positron support
- Docs for Zed, Neovim, and Helix
- Our official GitHub Action
- New autobracing feature
- New `skip` configuration
www.tidyverse.org/blog/2025/06...
If you haven't heard, Air is a very fast R formatter!
Read our blog post to learn about:
- Enhanced Positron support
- Docs for Zed, Neovim, and Helix
- Our official GitHub Action
- New autobracing feature
- New `skip` configuration
www.tidyverse.org/blog/2025/06...
June 11, 2025 at 2:31 PM
💨💨 Air 0.7.0 is out now! 💨💨
If you haven't heard, Air is a very fast R formatter!
Read our blog post to learn about:
- Enhanced Positron support
- Docs for Zed, Neovim, and Helix
- Our official GitHub Action
- New autobracing feature
- New `skip` configuration
www.tidyverse.org/blog/2025/06...
If you haven't heard, Air is a very fast R formatter!
Read our blog post to learn about:
- Enhanced Positron support
- Docs for Zed, Neovim, and Helix
- Our official GitHub Action
- New autobracing feature
- New `skip` configuration
www.tidyverse.org/blog/2025/06...
Something not shown in the video is that I really do have both projects open in the same workspace, i.e. this setup, which is pretty rare for R users. It lets me access the files of both projects to place the breakpoints.
January 27, 2025 at 2:24 PM
Something not shown in the video is that I really do have both projects open in the same workspace, i.e. this setup, which is pretty rare for R users. It lets me access the files of both projects to place the breakpoints.
Can you `load_all()` both of them into the same R session? If so, open both packages in the SAME workspace and you should be able to do something like this (note this is a bit bleeding edge and we have a few console related issues at the moment, but it does let you step across packages)
January 27, 2025 at 2:22 PM
Can you `load_all()` both of them into the same R session? If so, open both packages in the SAME workspace and you should be able to do something like this (note this is a bit bleeding edge and we have a few console related issues at the moment, but it does let you step across packages)
My wife secretly hand painted a number of wooden hex logos of #rstats packages I’ve created / worked on over the years, I love them so much!! Each is roughly the size of an open hand.
December 25, 2024 at 8:33 PM
My wife secretly hand painted a number of wooden hex logos of #rstats packages I’ve created / worked on over the years, I love them so much!! Each is roughly the size of an open hand.
The other half of this that is very useful for me in Source Mode is `canonical: true`, which in RStudio causes a Quarto document in source mode to "format on save" into the same form that the visual editor spits out. This lets me swap back and forth between source and visual without diffs.
December 19, 2024 at 2:02 PM
The other half of this that is very useful for me in Source Mode is `canonical: true`, which in RStudio causes a Quarto document in source mode to "format on save" into the same form that the visual editor spits out. This lets me swap back and forth between source and visual without diffs.
Now it’s nap time and cuddles for the rest of the day
November 10, 2024 at 7:29 PM
Now it’s nap time and cuddles for the rest of the day
We really loved this tree mounted tug toy
November 10, 2024 at 7:29 PM
We really loved this tree mounted tug toy
She completely surprised us by jumping in the water - she typically hates water! Unexpected bath day 😂
November 10, 2024 at 7:29 PM
She completely surprised us by jumping in the water - she typically hates water! Unexpected bath day 😂
Today is Annie’s gotcha day so we spent the morning running free in a 4 acre Sniffspot
November 10, 2024 at 7:29 PM
Today is Annie’s gotcha day so we spent the morning running free in a 4 acre Sniffspot