- Princeton University
- Princeton, NJ
- https://www.christophertkenny.com
- https://orcid.org/0000-0002-9386-6860
- @chris_t_kenny
- @chriskenny.bsky.social
Highlights
- Pro
I am a Postdoctoral Research Associate atPrinceton Data-Driven Social Science. I received a PhD in Government from Harvard University. I research redistricting, elections, and the uses and usability of census data. I am a founding member and co-PI of theALARM Project. In 2022, I was a fellow at theElection Law Clinic at Harvard Law School, where I developedRPV Near Me(source code).
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 mywebsite orCV. Find me onTwitter,Bluesky, orThreads.
These are packages that are stable and usable. They are on CRAN and in are in regular use.
| 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 inPL 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'stigris unless you're doing R 📦 development.) |
| cvap | Work with the US Census Bureau'sCitizen 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 theCongress.gov API. |
| feltr | Work with theFelt 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 theGPTZero API for identifying so-called AI written text. |
| bskyr | Use theBluesky Social HTTP API (XRPC) in R. |
| planscorer | Score redistricting plans via thePlanScore API. |
| alarmdata | Work with data generated fromALARM Project projects. |
| palette | Use apalette class which adds pretty console color printing. |
| baf | Load Census Bureau block assignment files and block equivalency files. |
| redistverse | Load in the wholeredist family at once. |
| opengraph | Parse Open Graph Protocol metadata |
| flexoki | Use Steph Ango'sflexoki palettes in ggplot |
| typr | Compile Typst documents from R. |
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 willsomeday be good for wider use.
- No promises packages
are also entirely under development but I make no guarantees to their usefulness, but hey itmight 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 |
|---|---|---|
| redistio | An interactive redistricting app run locally in Shiny | |
| 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. | |
| vf | Read in publicly available voter files in R. | |
| manifesto | Create R project manifest files, designed for less restrictive coding environments (e.g., teaching, workshops) | |
| ha | Control your smart home from R using the Home Assistant API | |
| ggtiger | ggplot2 extensions for Princeton's brand guidelines | |
| adj | A lightweight adjacency list class | |
| lobby | Interface to the US Senate Lobbying Disclosure API | |
| pr | Classess for probabilities built onvctrs |
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 |
| now | Quarto | now Publishers journals, including theQJPS |
| oup | Quarto | Oxford University Press journals, includingPOQ andPublius |
| 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 |
These are Quarto extensions which are not designed for submissions to academic journals.
| Extension | Description |
|---|---|
| tufte | Provides a Tufte-style document for Quarto using Typst, based onnogula/tufte-memo |
| ctk-article | A general purpose academic article template for Quarto using Typst |
| ctk-memo | A general purpose memo template to aesthetically matchctk-article |
| ctk-syllabus | A syllabus template for Quarto using Typst |
| ctk-legal | An expert report template for Quarto using Typst |
| cv | A CV template using shortcodes from Quarto and Typst-powered YAML reading and formatting |
| projector | A Quarto extension for making slides withPolylux |
| harvard-diss | A Quarto extension for writing a Harvard GSAS dissertation with a Typst backend |
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}} |
| typst-function | filter | inserts a Typst function in the place of a div or span |
| spellcheck | filter | runs Hunspell on render, printing mispelled words to the console |
| Repo | Description |
|---|---|
| christopherkenny.github.io | Home to the Quarto files that generatemy 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 usinggeomander andcensable |
| redist_workshop | A workshop taught with Tyler Simko at Harvard University on usingredist for research. |
| royale | |
| clash | |
| styler.quote | ' rather than captilized version") |
| luigg | |
| acronames | |
| parrot | |
| ppmf_data | Compressed versions of Census Privacy Protected Microdata Files |
| cvap_data | Preprocessed versions of Census CVAP data, usable withcvap |
| universe | Packages list for generating myr-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 bybskyr and run on GitHub Actions |
| mt-enumeration | Enumeration of all whole county plans with 1 person deviation in Montana for the 2020 cycle |
| kpfonts | A copy of Christophe Caignaert and Daniel Flipo's kpfonts |
| rockland-sare-lawsuit | Replication code for a blog post onSare v. Rockland County Board of Elections |
| projector-themes | Themes for theprojector Quarto extension to create slides with Polylux |
If there are otherpublic 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.
PinnedLoading
- alarm-redist/redist
alarm-redist/redist PublicSimulation methods for legislative redistricting.
- CoryMcCartan/PL94171
CoryMcCartan/PL94171 PublicTabulate P.L. 94-171 Redistricting Data Summary Files
If the problem persists, check theGitHub status page orcontact support.
Uh oh!
There was an error while loading.Please reload this page.




