Chris Kenny, PhD
banner
chriskenny.bsky.social
Chris Kenny, PhD
@chriskenny.bsky.social
Postdoc, Princeton DDSS.
PhD '25 Government @harvard.edu.
Studies redistricting with #rstats.
https://christophertkenny.com/
NYC 2025 Mayoral results as a dot density plot using the `dots` #rstats package (cran.r-project.org/web/packages...)
November 7, 2025 at 2:04 PM
Support for Prop 50 in California is highly correlated with support for Harris in 2024 and even runs slightly ahead of her

A sad day for democracy to have the future of competitive elections literally on the ballot and yet be so utterly defeated.

Stands at 63.9% voting yes.
November 6, 2025 at 2:24 AM
Finishing up prep for election night at CBS News' Data Desk!

Sunday in NYC was the highest single day early votes since at least 2019 and maybe ever:
November 4, 2025 at 7:25 PM
Tracking the early vote in NYC. Turnout in Manhattan is particularly striking. Brooklyn is higher in raw numbers, but Manhattan is tracking closer to a presidential year than the odd years.
October 30, 2025 at 4:50 AM
#rstats bskyr is updated on CRAN with lots of fixes and new features. Major additions are detailed vignettes support for direct messaging.

Full list: christophertkenny.com/bskyr/news/
October 26, 2025 at 4:49 PM
As with past SCOTUS oral arguments on redistricting, here's a word cloud in the shape of the state (with stopwords and lawyer names removed):
October 15, 2025 at 11:44 PM
redistio now uses @kylewalker.bsky.social's mapgl for interactive redistricting map editing!

redistio is an #rstats package that uses Shiny to draw redistricting maps locally.

Unlike other district editors, this provides access to our simulation algorithms, interactively!

Short demo:
October 3, 2025 at 12:46 PM
#rstats packages tinytiger and baf may again be seeing intermittent issues (again), as the Census Bureau has placed this redirect on their FTP sites.

Empty list responses may also be possible, as the download is (sometimes) capturing the HTML page...
October 1, 2025 at 7:50 PM
Presenting today!
October 1, 2025 at 1:13 PM
Prepping to talk about developing R packages next Wednesday with the Princeton R User Group!

Registration info:
ddss.princeton.edu/events/2025/...
September 23, 2025 at 4:00 PM
I've never seen a CRAN email mentioning the update of another #rstats package before:

> The new errors are from yesterday's update of {ggplot2}.

I guess it makes sense for the scale of revdep checks, as nearly 20% of other packages import ggplot2!
September 12, 2025 at 12:43 PM
I agree strongly on this and stress it in my blog post on how to make Bluesky bots with bskyr. If a bot posts sufficiently rarely (eg imagine a bot that posts only when there’s a new version of ggplot2 on CRAN), I can see using it, but generally avoid it.

Post: christophertkenny.com/posts/2024-0...
August 31, 2025 at 1:28 AM
Example of the menu with irish titles: christophertkenny.com/figs/tibbles...
August 30, 2025 at 12:12 AM
They’re busy staring off into space
August 29, 2025 at 1:48 AM
Using #rstats to control the lights in my apartment (ignore the cat-centric furnishings for my cats, Tibble and Coda)
August 29, 2025 at 12:42 AM
With methods from the redistricting sampling literature, we draw 100,000s+ of alternative tracts for every county across the last 3 decades. We can then score each one for a given measure and compare the real tract map to the simulations:
August 27, 2025 at 7:44 PM
A quick comparison of California's legislature's new proposed plan to 5,000 simulated redistricting plans. The arrow shows the change from 2022's commission plan to the new proposal.

Aggregating to seats, this adds about 3 new Democratic districts in CA.
August 16, 2025 at 3:36 PM
CRAN is updating their cross-package references for #rstats packages. Be sure to check your spam, as this went straight to mine!
July 22, 2025 at 12:57 AM
A classic #rstats pattern:

1. Update a package after a year+ of no updates
2. Get an email the next day that 1 additional check fails
3. Wait to see if anything else fails
4. Receive an impolite admonishment from Ripley for ??? resubmitting the package *when no resubmission occurred*
July 9, 2025 at 11:49 AM
A ggplot version of the mayoral primary results (so far) with a version of the NYTimes colors

#rstats code for scraping NYC BoE and making the map at: github.com/christopherk...
June 25, 2025 at 2:59 PM
Poking around with `tools::CRAN_authors_db()` introduced in #rstats 4.5.0. An estimated 2,641 packages are maintained by people using university emails.

(Don't take this too seriously. It only counts edu email variants and `CRAN_authors_db()` doesn't include all packages.)
June 20, 2025 at 8:32 PM
And also a dark theme with `darker` github.com/christopherk.... I find dark themes hard to read, but a lot of people like them
June 20, 2025 at 2:49 AM
Update to the #quartopub projector extension (think beamer but w/ typst):

Works with the newest Quarto/Typst versions! Quarto 1.7.22 required updates for Typst >= 0.13.0

New themes at github.com/christopherk... Including: metropolis, friendly, a
@mattblackwell.bsky.social esque cousteau, & techy
June 20, 2025 at 2:48 AM
Finally, I discuss potential issues with affidavits from voters. A third party candidate alleges that she got fewer votes that she should have. Vote recall is well studied and difficult to trust. This is evidence, but take it with a grain of salt. 7/
June 17, 2025 at 1:56 PM
And this is something that happens frequently. Here's the same map using 2020 election data. Note how Kaser and New Square show the same pattern? It's a local quirk, not some random or systemic ballot machine issue 6/
June 17, 2025 at 1:56 PM