Jenny Bryan's Avatar

Jenny Bryan

@jennybryan.bsky.social

Software engineer @posit.co, humane #rstats

6,485 Followers  |  463 Following  |  83 Posts  |  Joined: 03.07.2023
Posts Following

Posts by Jenny Bryan (@jennybryan.bsky.social)

Post image Post image Post image Post image

The future of #DataScience is at #positconf 2026. Check out our keynote lineup:
Wes McKinney: Future of high-performance computing
Christine Zhang: Data storytelling at NY Times
Emily Riederer: Scaling open-source at Capital One
Sara Altman & Simon Couch: AI-driven workflows
Register: pos.it/conf

27.02.2026 16:05 β€” πŸ‘ 16    πŸ” 8    πŸ’¬ 0    πŸ“Œ 2
Preview
Self-cleaning test fixtures A wild romp through environments -- namely, the environments associated with functions and tests. How to adopt a low-impact lifestyle.

this is one of my very favorite things about withr's take on this

withr::defer() -> withr::deferred_run()

tidyverse.org/blog/2020/04...

23.02.2026 19:28 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Apply to be an Opportunity Scholar at posit::conf(2026) in Houston!
We’re offering 40 full-support scholarships for underrepresented groups in data science. Includes: 🎟️ Conference+Workshop pass 🏨 Hotel stay ✈️ Travel reimbursement
Apply by March 13: posit.co/blog/apply-t...
#positconf2026 #rstats

20.02.2026 21:25 β€” πŸ‘ 22    πŸ” 14    πŸ’¬ 0    πŸ“Œ 2
A close-up view of a computer monitor in a dimly lit room, showing a terminal console. The terminal displays the output of an R function called meetupr_sitrep(). The report shows green checkmarks for "Active Authentication" and "Cached Token," and a blue information icon for package settings. At the bottom, a red "X" marks a failed "API Connectivity Test," illustrating a diagnostic situation report in action. In the foreground, a coffee mug and a person’s hand on a keyboard are visible but slightly out of focus.

A close-up view of a computer monitor in a dimly lit room, showing a terminal console. The terminal displays the output of an R function called meetupr_sitrep(). The report shows green checkmarks for "Active Authentication" and "Cached Token," and a blue information icon for package settings. At the bottom, a red "X" marks a failed "API Connectivity Test," illustrating a diagnostic situation report in action. In the foreground, a coffee mug and a person’s hand on a keyboard are visible but slightly out of focus.

Stop playing "diagnostics ping-pong" with your users πŸ“

Wrote about why every R package wrapping external tools needs a sitrep() function β€” with real examples from meetupr and freesurfer.

#RStats

https://drmo.site/F5gVjR

03.02.2026 10:09 β€” πŸ‘ 22    πŸ” 6    πŸ’¬ 0    πŸ“Œ 0
Post image

Good news: The posit::conf(2026) Call for Talks has been extended to Friday, February 20!
Join us in Houston to share your work with the R & Python community.
🎀 Speakers receive: Professional coaching, free conference pass, travel assistance
Submit your 20-min talk proposal: pos.it/conf-talk-2026

02.02.2026 16:52 β€” πŸ‘ 9    πŸ” 5    πŸ’¬ 0    πŸ“Œ 1

you don't need to copy/paste from that preview! the rendered reprex, in a friendly md form, is already on your clipboard πŸ˜†

the htmlpreview is for your πŸ‘€, but the good stuff is on the clipboard waiting to be pasted in the relevant venue (default is github, but slack can also be requested)

27.01.2026 20:08 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 1    πŸ“Œ 1
Post image

Speak at posit::conf(2026) and share your R & Python stories!

Accepted speakers get:
✨ Travel & lodging help
✨ Free conference pass
✨ Professional coaching

Apply by Feb 6 to join us Sept 14-16 in Houston, TX!

Submit here: pos.it/conf-talk-2026

#positconf2026 #rstats #pydata

15.01.2026 15:40 β€” πŸ‘ 30    πŸ” 12    πŸ’¬ 0    πŸ“Œ 2
GitHub - HenrikBengtsson/dirdf: R package: dirdf - Extracts Metadata from Directory and File Names R package: dirdf - Extracts Metadata from Directory and File Names - HenrikBengtsson/dirdf

the tidyr::separate_wider_*() functions might offer a nice little improvement to your existing approach

this idea has been kicking around for years and @henrikbengtsson.bsky.social catalyzed something at an rOpenSci unconf once: github.com/HenrikBengts...

12.12.2025 16:20 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Join us this summer in Visby, Sweden πŸ‡ΈπŸ‡ͺ for RaukR 2026, a 2-week intensive R summer school πŸ‘¨β€πŸ’»πŸ‘©β€πŸ’» to take your R skills πŸ“Š beyond the basics. Sign up now for early bird offer! @nbis.se @scilifelab

#rstats #r #datascience #code #bioinformatics #nbisweden #raukr

go.nbis.se/raukr-2026/

08.12.2025 15:28 β€” πŸ‘ 2    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
17Β  Vignettes – R Packages (2e) Learn how to create a package, the fundamental unit of shareable, reusable, and reproducible R code.

Vignette workflows are just inherently awkward since, unlike help topics and `man/*.Rd` files, the rendered form of vignettes has no legit business or home inside an R package in source form. This chapter outlines some of the least bad workflows:

r-pkgs.org/vignettes.html

24.11.2025 19:06 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I define short aliases `bp()` and `bg()` for `usethis::browse_package()` and `usethis::browse_github()` in `.Rprofile` because I use them so much.

17.11.2025 18:00 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Screenshot showing usage of usethis::browse_package(), usethis::browse_cran(), and usethis::browse_github().

Screenshot showing usage of usethis::browse_package(), usethis::browse_cran(), and usethis::browse_github().

I'm reminded of how handy the usethis::browse_*() functions are and thought I'd remind people they exist. Choose from a menu of links or go straight to CRAN or GitHub. #rstats

17.11.2025 17:54 β€” πŸ‘ 55    πŸ” 18    πŸ’¬ 2    πŸ“Œ 0

This gives a fantastic framing of how to think about reproducibility (it's a spectrum) and how to use renv with intention. Highly recommend, even if you're not using renv, to get a better understanding of how to live in peace as R and package versions advance πŸ•ŠοΈ #rstats

12.11.2025 17:32 β€” πŸ‘ 44    πŸ” 8    πŸ’¬ 2    πŸ“Œ 0
10 Years of Data Science Tools...and What Happens Next (Jonathan McPherson) | posit::conf(2025)
YouTube video by Posit PBC 10 Years of Data Science Tools...and What Happens Next (Jonathan McPherson) | posit::conf(2025)

My keynote about data science tools at posit::conf is now online! I originally meant it to be a talk about Positron, but as I was writing it, it took a left turn through the history of RStudio and into the philosophy of tool design & how to build stuff for people.

www.youtube.com/watch?v=tGre...

07.11.2025 18:11 β€” πŸ‘ 48    πŸ” 11    πŸ’¬ 0    πŸ“Œ 0
Example of using `filter_out()` on the `penguins` dataset, showing how it is much easier than `filter()`, especially with `NA`s

Example of using `filter_out()` on the `penguins` dataset, showing how it is much easier than `filter()`, especially with `NA`s

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...

07.11.2025 16:02 β€” πŸ‘ 149    πŸ” 33    πŸ’¬ 10    πŸ“Œ 6

maybe it should be your first Pythong package 🩴

06.11.2025 17:19 β€” πŸ‘ 11    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Will definitely include this example in my next talk on how to name files!

βœ… Full marks for "make it easy to guess what the heck something is, based on it name".

31.10.2025 20:46 β€” πŸ‘ 38    πŸ” 4    πŸ’¬ 1    πŸ“Œ 1
Positron for RStudio Users: A Gentle Introduction with an image of a cute orange kitten sniffing a hand

Positron for RStudio Users: A Gentle Introduction with an image of a cute orange kitten sniffing a hand

I loved discussing "Positron for RStudio Users: A Gentle Introduction" with @simisani.bsky.social & R-Ladies Gaborone!

Check out the recording and materials:

πŸ“Ή www.youtube.com/watch?v=2fOQ...
πŸ“ ivelasq.rbind.io/talk/positro...

I hope this intro is better than the one between my three cats 😹

27.10.2025 22:20 β€” πŸ‘ 40    πŸ” 8    πŸ’¬ 3    πŸ“Œ 0
Video thumbnail

I'm excited to share a new version of the Air formatter for #rstats, with support for tabular formatting! Super useful with `tibble::tribble()` calls or `data.table::fcase()`.

It's currently experimental as we're looking to get feedback on the feature, so please let us know what you think.

21.10.2025 10:34 β€” πŸ‘ 137    πŸ” 31    πŸ’¬ 7    πŸ“Œ 2

I still marvel at the choice to do "C:\Program Files"

21.10.2025 15:46 β€” πŸ‘ 9    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
bliki: Frequency Reduces Difficulty "If it hurts - do it more often". Good advice if the amount of pain raises exponentially with the time between actions, such as for integrating software.

BTW this "Frequency Reduces Difficulty" post from @martinfowler.com is the origin of the mantra "if it hurts, do it more often" (at least, it's where I learned it). It's amazing how broadly this applies.

martinfowler.com/bliki/Freque...

03.10.2025 16:28 β€” πŸ‘ 28    πŸ” 4    πŸ’¬ 0    πŸ“Œ 1

I bet the whole reason he's thinking about this is that I was complaining to him (to everyone, really) about the pain of using Windows full-time while my macbook's logic board gets replaced. And he brought out the house words "if it hurts, do it more often!"

03.10.2025 15:48 β€” πŸ‘ 40    πŸ” 2    πŸ’¬ 3    πŸ“Œ 1

this is a *wild* exaggeration but I'll allow it 🀣

03.10.2025 15:40 β€” πŸ‘ 18    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
"When you hit enter for a newline in your prompt" on the "This little maneuver is gonna cost us 51 years" image from Interstellar

"When you hit enter for a newline in your prompt" on the "This little maneuver is gonna cost us 51 years" image from Interstellar

02.10.2025 22:19 β€” πŸ‘ 13    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0

2️⃣ I HAVE SUCH STRONG FEELINGS ABOUT THIS but already sense that it's a lost cause

02.10.2025 15:16 β€” πŸ‘ 21    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
GitHub - r-lib/rig: The R Installation Manager The R Installation Manager. Contribute to r-lib/rig development by creating an account on GitHub.

I'd install Xcode command line tools (NOT all of Xcode) to get git and compilers, etc. (xcode-select --install)

and I'd use rig to install one or more versions of R (github.com/r-lib/rig)

(my macbook's logic board failed and is being replaced, so I'll be doing all this set up myself soon 😬)

25.09.2025 23:04 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
you should be using pak

you should be using pak

Ever run `install.packages()` and wish it were faster, smarter, and more reliable?

The {pak} package speeds things up with parallel downloads, dependency solving, and reproducible installs.

πŸ“¦ pak.r-lib.org

#RStats

23.09.2025 14:22 β€” πŸ‘ 57    πŸ” 12    πŸ’¬ 1    πŸ“Œ 0

enough women to make a line πŸ˜„

19.09.2025 11:26 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Air hex sticker logo

Air hex sticker logo

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

17.09.2025 14:55 β€” πŸ‘ 33    πŸ” 5    πŸ’¬ 1    πŸ“Œ 0

The equivalent of the Bechdel test for a tech-ish event is β€œis there a line for the womens bathroom?” and #positconf just passed with flying colours πŸ˜…

17.09.2025 14:10 β€” πŸ‘ 70    πŸ” 9    πŸ’¬ 1    πŸ“Œ 0