Skip to content
View christopherkenny's full-sized avatar


  • Pro


Block or Report

Block or report christopherkenny

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse

Christopher T. Kenny

I am a PhD candidate in Government at Harvard University. I research redistricting, elections, and the uses and usability of census data. I am a core member of the ALARM Project. In 2022, I was a fellow at the Election Law Clinic at Harvard Law School.

This readme is mostly a table of contents for my GitHub repositories (and some others that I contribute to). For more information on my research, see my website or CV. Find me on Twitter, Bluesky, or Threads.

Packages on CRAN

These are packages that are stable and usable. They are on CRAN and in are in regular use (by at least me).

Package Description
redist Tools for redistricting sampling. Used frequently in research and litigation.
redistmetrics Measures and metrics for assessing redistricting plans
geomander Spatial tools designed for interfacing election data, precincts, and census data
PL94171 Read in PL 94-171 Census data, the redistricting files.
censable Download the most frequently used demographic data and categories from the Census Bureau API.
ggredist ggplot2 extensions and color palettes for election mapping.
tinytiger A developer-oriented interface to TIGER/Line Shapefiles. (You probably want to use Kyle Walker's tigris unless you're doing R 📦 development.)
cvap Work with the US Census Bureau's Citizen Voting Age Population Special Tabulations.
ppmf Read in US Census Bureau Privacy Protected Microdata Files.
divseg Compute diversity and segregation indices.
dots Create dot density maps in R.
congress An R interface to the API.
feltr Work with the Felt API so you can upload or read spatial data within existing workflows in R.
apportion Allocate seats based on population vectors by various different methods.
jot A GitHub friendly approach to saving and sharing statistics needed for writing papers in Quarto/RMarkdown.
name Collected tools for working with pattern-based column names.
crayons Some ggplot2 extensions for color palettes based on Crayola crayons.
gptzeror An R interface to the GPTZero API for identifying so-called AI written text.
bskyr Use the Bluesky Social HTTP API (XRPC) in R
planscorer Score redistricting plans via the PlanScore API.
alarmdata Work with data generated from ALARM Project projects.
palette Use a palette class which adds pretty console color printing

Packages under development

These are packages that are actively under development and have not yet made it onto CRAN for one reason or another.

  • Stable packages should give correct results, but may need a bit of work tightening up documentation or handling errors better.
  • Mostly stable packages should give correct results, but have features left to implement or have R CMD Check issues.
  • Experimental packages are entirely under development but will someday be good for wider use.
  • No promises packages are also entirely under development but I make no guarantees to their usefulness, but hey it might be better than nothing. Send me a tweet, email, or open an issue if you want to ask about specific features in these.
Package Description Lifecycle
redistverse Load in the whole redist family at once. Static Badge
redistio An interactive redistricting app run locally in Shiny Static Badge
ei Run ecological inference models in R. This is a project with Shusei Eshima and Gary King to update Gary King and Molly Robert's original ei package from a decade ago. Static Badge
vf Read in publicly available voter files in R. Static Badge

Quarto and RMarkdown


These are templates for journal submissions. These each modify a LaTeX template to let you write papers in a journal's submission style from Quarto or RMarkdown.

Template Type Journal(s)
annual-reviews Quarto Annual Reviews
apsr Quarto American Political Science Review
cambridge-medium Quarto Political Analysis, Political Science Research and Methods, British Journal of Political Science, Annals of Actuarial Science, Network Science
nature Quarto Springer Nature Journals
pnas Quarto PNAS (for Research Articles)
pnas-si Quarto PNAS (for Supporting Information)
science rticles Science, Science Advances
scientific-data Quarto Scientific Data (for Data Descriptors)
perspectives Quarto Perspectives on Politics

Quarto Extensions

These are non-template extensions that can be added to any Quarto document.

Extension Type Description
wordcount filter inserts a word count within a document in place of the placeholder {{wordcount}} or {{wordcountref}}

Other Repos

Repo Description Home to the Quarto files that generate my personal website.
christopherkenny Home of the readme that you are currently reading.
chicago An example workflow for combining city election data and census demographic data using geomander and censable
redist_workshop A workshop taught with Tyler Simko at Harvard University on using redist for research.
royale Static Badge An R package for accessing the API for the game Clash Royale.
clash Static Badge An R package for accessing the API for the game Clash of Clans.
styler.quote Static Badge A third party extension to styler that modifies the tidyverse style guide to use correct quotes in R (the single ' rather than captilized version ")
luigg Static Badge An R package with ggplot2 extensions for a Mario-style pipe bar graph and color schemes based on Mario games.
acronames Static Badge An R package for creating initialisms based on lists of words you want to use.
parrot Static Badge An R package for including party parrots in RMarkdown.
ppmf_data Compressed versions of Census Privacy Protected Microdata Files
cvap_data Preprocessed versions of Census CVAP data, usable with cvap
universe Packages list for generating my r-universe. I don't keep this super updated, but it has the big packages that are a pain to build from source from GitHub.
conf Links to public conference slides
legend-dynasty A series of automatically generated tables to a quarto website
bsky-cran-bot A time-based Bluesky Social bot powered by bskyr and run on GitHub Actions
mt-enumeration Enumeration of all whole county plans with 1 person deviation in Montana for the 2020 cycle

If there are other public repos that aren't listed here that aren't forks, they are probably either newer than this Table of Contents, too small to be useful, not supported but I don't want to delete them, or course-related. If you see something that you're interested in knowing more about, send me a tweet or email or just open an issue in the repo.


  1. alarm-redist/redist alarm-redist/redist Public

    Simulation methods for legislative redistricting.

    C++ 65 21

  2. geomander geomander Public

    Geographic Tools for Studying Gerrymandering

    R 13 2

  3. CoryMcCartan/PL94171 CoryMcCartan/PL94171 Public

    Tabulate P.L. 94-171 Redistricting Data Summary Files

    Prolog 7 3

  4. censable censable Public

    Making Census Data More Usable

    R 7 1

  5. congress congress Public

    Access the API

    R 10

  6. bskyr bskyr Public

    Interact with Bluesky Social

    R 5 1