Sister Counties

Sister counties — these are counties that have most similar land cover by percentage, i.e. similar amounts of urbanization, crop land, hay fields, trees. Often, but not always these counties border each other. Sometimes this is true in both directions but not always. Fun with R.
 
Albany – Schenectady
Allegany – Cattaraugus
Bronx – Queens
Broome – Tioga
Cattaraugus – Allegany
Cayuga – Seneca
Chautauqua – Oswego
Chemung – Chenango
Chenango – Otsego
Clinton – Fulton
Columbia – Cortland
Cortland – Columbia
Delaware – Cattaraugus
Dutchess – Orange
Erie – Onondaga
Essex – Warren
Franklin – Lewis
Fulton – Clinton
Genesee – Seneca
Greene – Sullivan
Hamilton – Herkimer
Herkimer – St. Lawrence
Jefferson – Chautauqua
Kings – New York
Lewis – St. Lawrence
Livingston – Wyoming
Madison – Oneida
Monroe – Niagara
Montgomery – Tompkins
Nassau – Richmond
New York – Kings
Niagara – Wayne
Oneida – Madison
Onondaga – Ontario
Ontario – Livingston
Orange – Dutchess
Orleans – Niagara
Oswego – Chautauqua
Otsego – Chenango
Putnam – Dutchess
Queens – Bronx
Rensselaer – Schoharie
Richmond – Nassau
Rockland – Westchester
Saratoga – Fulton
Schenectady – Albany
Schoharie – Tioga
Schuyler – Steuben
Seneca – Cayuga
St. Lawrence – Lewis
Steuben – Schuyler
Suffolk – Monroe
Sullivan – Greene
Tioga – Broome
Tompkins – Schuyler
Ulster – Greene
Warren – Essex
Washington – Oneida
Wayne – Niagara
Westchester – Rockland
Wyoming – Livingston
Yates – Livingston
 
 
The Zonal Histogram was created in QGIS using the NLCD ’19 data. Here is the R script:
library(tidyverse)
rm(list=ls())

# read exported zonal histogram
hist <- read_csv('Desktop/county.csv') 

# calculate rowwise percentages of land use
hist <- hist %>% rowwise() %>% mutate(total = sum(across(contains('HISTO_')))) %>%
  mutate(across(contains('HISTO_'), ~(./total)*100 )) 

# include only relevant rows -- those in the histogram
hist <- hist %>% select(NAME10, contains('HISTO_'))


# go through each county
for (county in sort(hist$NAME10)) {
  searchCounty <- hist %>% filter(NAME10 == county)
  
  
  # calculate distance between search county and others
  # make our searchCounty dataframe the same size as the histogram table
  # subtract from histogram dataframe, taking absolute value 
  # sum rows to calculate the distance from the county
  # bind to histogram dataframe
  # better explanation: https://stackoverflow.com/questions/55681573/how-can-i-find-the-record-from-a-data-set-that-is-most-similar-to-a-test-record
  
  bd <- cbind(hist, dist=rowSums(abs(hist[,-1] - searchCounty[rep(1, nrow(hist)), -1]))) %>%
    arrange(dist)

  print(paste(county,'-',bd[2,1]))
}

How Congress Voted on the Fiscal Responsibility Act

State Aye – D No – D Aye – R No – R Aye No Total
Alabama 1 0 3 3 4 3 7
Alaska 1 0 0 0 1 0 1
Arizona 2 1 2 4 4 5 9
Arkansas 0 0 4 0 4 0 4
California 29 11 12 0 41 11 52
Colorado 5 0 1 1 6 1 7
Connecticut 2 3 0 0 2 3 5
Delaware 1 0 0 0 1 0 1
Florida 7 1 10 10 17 11 28
Georgia 4 1 6 3 10 4 14
Hawaii 2 0 0 0 2 0 2
Idaho 0 0 1 1 1 1 2
Illinois 11 3 0 3 11 6 17
Indiana 2 0 5 1 7 1 8
Iowa 0 0 4 0 4 0 4
Kansas 1 0 2 1 3 1 4
Kentucky 1 0 5 0 6 0 6
Louisiana 1 0 4 1 5 1 6
Maine 2 0 0 0 2 0 2
Maryland 7 0 0 1 7 1 8
Massachusetts 7 2 0 0 7 2 9
Michigan 6 1 6 0 12 1 13
Minnesota 3 0 2 2 5 2 7
Mississippi 1 0 2 1 3 1 4
Missouri 1 1 4 2 5 3 8
Montana 0 0 0 2 0 2 2
Nebraska 0 0 3 0 3 0 3
Nevada 3 0 1 0 4 0 4
New Hampshire 2 0 0 0 2 0 2
New Jersey 9 0 2 1 11 1 12
New Mexico 2 1 0 0 2 1 3
New York 6 9 10 1 16 10 26
North Carolina 6 0 6 1 12 1 13
North Dakota 0 0 1 0 1 0 1
Ohio 5 0 10 0 15 0 15
Oklahoma 0 0 3 2 3 2 5
Oregon 2 2 2 0 4 2 6
Pennsylvania 8 1 7 1 15 2 17
Rhode Island 1 0 0 0 1 0 1
South Carolina 1 0 2 4 3 4 7
South Dakota 0 0 1 0 1 0 1
Tennessee 1 0 3 5 4 5 9
Texas 9 4 11 14 20 18 38
Utah 0 0 4 0 4 0 4
Vermont 1 0 0 0 1 0 1
Virginia 4 2 2 3 6 5 11
Washington 7 1 2 0 9 1 10
West Virginia 0 0 1 1 1 1 2
Wisconsin 0 2 5 1 5 3 8
Wyoming 0 0 0 1 0 1 1
Andy Arthur, 6/2/23

Notes: Does not include members who did not vote/abstain. Party is based on caucus that member participates in, not their enrolled party.

D – Aye D – No R – Aye R – No
Smallest Area District
49 29 5 3
Small Area District
56 8 12 9
Medium Area District
32 3 33 18
Large Area District
14 1 54 17
Largest Area District
13 4 45 24
Andy Arthur, 6/2/23

Very urban and very rural Congressional districts (as estimated by physical size of districts) were the most likely to vote against the Fiscal Responsibility Act. Probably because the most extreme members of Congress are from very urban and very rural areas. Suburban moderates probably have more concerns about losing in an general election then a primary.