#OpenAccess from @apsrjournal.bsky.social - Redistricting Reforms Reduce Gerrymandering by Constraining Partisan Actors - https://cup.org/4pNwXA7 - @corymccartan.com, @chriskenny.bsky.social, @simko.bsky.social, EMMA EBOWE, MICHAEL Y. ZHAO & KOSUKE IMAI #FirstView
Chris Kenny, PhD
@chriskenny.bsky.social
Postdoc, Princeton DDSS. PhD '25 Government @harvard.edu. Studies redistricting with #rstats. https://christophertkenny.com/
Thrilled to share that I received POLMETH's Statistical Software Award for 2026 for the #rstats package geomander. It's a performant toolkit for working with spatial data, especially election and demographic data. Learn more about the package at christophertkenny.com/geomander/
Geographic Tools for Studying Gerrymandering
A compilation of tools to complete common tasks for studying gerrymandering. This focuses on the geographic tool side of common problems, such as linking different levels of spatial units or estimatin...
christophertkenny.com
3 new projects: 1/3 an Algorithmic Redistricting Atlas. Explore congressional redistricting across enacted, simulated, and optimized maps. It has data for the last 5 presidential elections, and you can swing the national baseline.
Is air formatting broken for tribbles at the moment? It seems to be inserting spaces inconsistently, almost at-random
If you do record linkage in #rstats, I'd love your feedback on irelink: Fast Probabilistic Record Linkage. It is a port of Python's splink package, rewritten with a clean, pipeable R interface. All of the magic happens in a database backend (default is DuckDB) so it's incredibly fast.
This is also not quite true. Empirically, states with independent commissions or nonpartisan drawers produce maps that are at or near the median simulation on partisan + racial demographics. Because of that, it's reasonable to treat the median as a forecast for a drawer following only certain rules
6) Taking the median outcome of an algorithm-drawn map sample as the likeliest outcome rests on a fallacy that any map is equally likely to be chosen. But maps aren't drawn randomly. If one bad choice yields 10 variants while a good choice instead yields 2, that doesn't make the latter less likely
This is not accurate! Just like polling, we can randomly sample maps in a representative way, and understand typical maps without looking at every one. We have mathematical proofs that these algorithms produce representative samples if run long enough.
7) There’s also a technical issue that’s ultimately secondary to the previous point: We don’t know if the algorithm generates a truly unbiased sample of map outcomes. There are more possible map combinations in a medium-sized state than atoms in the universe—far more than current tech can generate
Unfortunately some inaccurate info in this thread. The point of the NYT sims was to see what typical maps drawn without the VRA would look like. But the maps Stephen draws incorporate VRA compliance. Also wrong info on the algorithms which I will say more about separately
The NYT's maps would hurt Black voters & are de facto GOP gerrymanders. The whole premise is flawed. It’s nonsensical that Dems would 𝘭𝘰𝘴𝘦 a seat with "colorblind" nonpartisan maps—the GOP gerrymandered every state here except for AL & LA. Here's how nonpartisan maps might actually look. [Thread]
One of the joys of open source: Seeing the NYT use your #rstats packages www.nytimes.com/2026/05/17/u...
Why Neutral Maps Could Empower Black Voters as Much as the Voting Rights Act
nytimes.com
Introducing dais: a Rust-based PDF presenter tool. Present PDF slides (eg, Beamer) in a PowerPoint-like interface. Full drawing control, navigation tools, live text boxes, and more: christophertkenny.com/posts/2026-0...
dais: A better way to present PDF slides – Christopher T. Kenny
Introducing a new Rust-powered PDF presenter CLI with features including slide groups, drawing, blackouts, a whiteboard, zooming, and live text boxes with math support.
christophertkenny.com
Now with a short blog post on the Princeton DDSS engineering website: princeton-ddss.github.io/notes/cran-g... This increase is driven by solo devs with prior #rstats packages on CRAN!
princeton-ddss.github.io
Submission to CRAN #rstats through May 7th. Looks like the LLMs are gaining speed
Submission to CRAN #rstats through May 7th. Looks like the LLMs are gaining speed
CRAN is on track for an all time year in terms of #rstats package submissions:
Given the Callais decision, resharing our (w @corymccartan.com) "Individual and Differential Harm in Redistricting" piece which tries to tackle estimating group harm, including separating partisan and racial effects of maps... osf.io/preprints/so... (conditionally accepted at Nature Human Behavior)
OSF
osf.io
The Positron release from last week is *substantially* faster than the March version on startup. Highly recommend updating!
I agree, Claude. It is weird that case_match() was deprecated in dplyr 1.2.0.
A proof-of-concept: CI for Quarto extensions! Automatically install and run your templates weekly, so you know when #quartopub updates might break something. Renders results to a Quarto site, so you can preview outputs: christophertkenny.com/template-gal... Source: github.com/christopherk...
Quarto Template Gallery
christophertkenny.com
And another Quarto announcement; I've alluded to it before, but we're making it "official". We've started work on Quarto 2. The blog post has an overview: quarto.org/docs/blog/po... We'll share more in future blog posts, but here's what you can expect from the Quarto 2 dev effort: (1/)
What’s next: Quarto 2 – Quarto
We’ve started working on quarto-dev/q2, a full rewrite of Quarto in Rust.
quarto.org
"It'll be a quick PR to fix a small feature gap" ... "might as well do it correctly" ...
Updated Positron + Quarto + Quarto VSCode extension at the same time and the preview doesn't work anymore because it appends --output-directory, which is invalid in most cases... Codex followed the ctrl+shift+k -> found the issue -> fixed the extension's typescript so it works! Pretty impressive
#rstats I'm glad to announce Jarl 0.5.0! Jarl is a very fast R linter, written in Rust. This release brings many improvements and fixes. See the blog post: www.etiennebacher.com/posts/2026-0... And the full changelog: jarl.etiennebacher.com/changelog 🧵 to highlight some features below (1/4)
Jarl 0.5.0
etiennebacher.com
And very interesting to see the growth of the tidyverse, Rcpp, and ropensci in the last decade by maintainer/author Hard to think of #rstats without the tidyverse Note: Author parsing is a little difficult and there may be some undercounts! Lines end at last new package author/maintainer role.
CRAN is on track for an all time year in terms of #rstats package submissions:
29 years of #rstats community knowledge was sitting in hard-to-search pipermail archives. So I built a more modern home for it. Introducing the R Mailing List Archives: 631,000+ messages from 32 lists, fully searchable and available as open data. r-mailing-lists.thecoatlessprofessor.com
Doing a lot of testing of AI agents with my team these days. Pulled together a new package, wf, which helps install and manage agent skills from within #rstats (A great time to be at Princeton DDSS; our team has an intro to Claude workshop today and an intro to Posit Assistant workshop next week!)
Doing some testing with codex in #rstats. It seems quite a bit behind Claude Code... Does anyone know if there is a clean way to give codex access to `.libPaths()` (ie, C:/Users/chris/AppData/Local/R/win-library/4.5 AND C:/Program Files/R/R-4.5.2/library) without giving it full powershell access?
I have been wanting a solution like this for years. Now with Claude Code it is surprisingly easy to build it. Added WebR to run R code, Zotero plugin, a Diff viewer (can export all changes between submission and resubmission), basically ready to be used in our lab!
An old idea of mine is being picked by others, very exciting hope it works out, quarto deserves a full Google Docs like experience!
If you use #QuartoPub for any PDF documents for teaching and you need to meet impending PDF accessibility rules, upgrade to v1.9, add format: typst: pdf-standard: ua-1 to the YAML front matter, and it'll work!
Here's a quick guide to setting up an R LSP for Claude Code in #rstats: christophertkenny.com/posts/2026-0... Note that it uses the `languageserver` package at the moment, since I don't believe ark is exposed for a standalone mode yet.
Using an R language server with Claude Code – Christopher T. Kenny
Giving Claude access to an R LSP to improve its interaction with your codebase.
christophertkenny.com
News for #RStats folks who use RStudio and are interested in AI, via @posit.co: "AI in RStudio is here. We’ve embedded a specialized agent, Posit Assistant, directly into RStudio, transforming the IDE into a powerful, context-aware collaborator for data analysis." It's a $20/mo subscription.
Introducing AI in RStudio
Today we’re introducing AI in RStudio. We’ve embedded a specialized agent directly into RStudio so it can read your live session context and provide more accurate assistance for data science and analy...
posit.co