Skip to content

Instantly share code, notes, and snippets.

View elliottmorris's full-sized avatar

G. Elliott Morris elliottmorris

View GitHub Profile
@elliottmorris
elliottmorris / cpi_adj_outlays.R
Created April 11, 2025 13:18
script to look at federal spending by year
library(tidyverse)
library(zoo)
dat = read_csv('~/Desktop/selected_outlays_2025-04-10.csv') %>%
select(date, spend = `Cumulative year-to-date`)
dat = tibble(
date = ymd(as_date(min(dat$date):max(dat$date)))
) %>%
@elliottmorris
elliottmorris / gist:94ac7a4dc7b96aa13294aa18794c5803
Created April 3, 2025 14:04
trump issue approval march 2025
library(tidyverse)
library(janitor)
dat = read_csv('~/Downloads/Trump issue approval march - Sheet1.csv')
dat = clean_names(dat)
dat %>% group_by(category) %>%
summarise_at(c('approve', 'disapprove', 'net'), mean) %>%
mutate_if(is.numeric,round_half_up,1) %>%
@elliottmorris
elliottmorris / ElectionResults.xlsx
Created April 2, 2025 02:38
Wisconsin Supreme Court Election live modeling, Apr 1 2025
download excel file from: https://elections.countyofdane.com/Precincts-Result/179/0005
@elliottmorris
elliottmorris / bayes update young voters.R
Created November 27, 2023 22:50
for twitter. showing how to combine a prior (past election results) and data (polls) for certain poll subgroups
library(tidyverse)
bayes_update_normal = function(
data_mu,
data_se,
prior_mu = 0,
prior_se = 3){
if(all(data_mu == 0)){
return(c(0,0))
@elliottmorris
elliottmorris / Untitled spreadsheet - Sheet1.csv
Created October 17, 2023 15:51
chart for Matt and Derek
country inflation (YoY Sept 2023) Leader approval Disapproval Net
Austria 7.37 23 73 -50
Belgium 2.39 38 46 -8
Brazil 5.19 51 45 6
Canada 4 33 59 -26
France 4.86 23 72 -49
Germany 4.53 25 68 -43
Ireland 6.41 39 52 -13
Italy 5.44 44 51 -7
Japan 3.2 23 63 -40
@elliottmorris
elliottmorris / ca_polls - Sheet1.csv
Last active September 18, 2021 03:03
California 2021 recall polling model
end_date pollster n population pid_weighted keep remove
2021-09-13 survey monkey 3985 LV 1 0.55 0.41
2021-09-13 trafalgar 1082 LV 0 0.53 0.45
2021-09-11 emerson 1000 LV 1 0.6 0.4
2021-09-10 data for progress 2464 LV 1 0.57 0.43
2021-09-08 surveyusa 930 LV 0 0.54 0.41
2021-09-07 suffolk 500 LV 0 0.58 0.41
2021-09-06 uc berkeley 6550 LV 0 0.6 0.39
2021-09-04 trafalgar 1079 LV 0 0.53 0.43
2021-09-01 yougov 1955 LV 1 0.56 0.44
@elliottmorris
elliottmorris / election_night_live_model.R
Last active January 29, 2024 18:56
A live election-night prediction model using The Economist's pre-election forecast
#' Description
#' This file runs a live election-night forecast based on The Economist's pre-election forecasting model
#' available at projects.economist.com/us-2020-forecast/president.
#' It is resampling model based on https://pkremp.github.io/update_prob.html.
#' This script does not input any real election results! You will have to enter your picks/constraints manually (scroll to the bottom of the script).
#'
#' Licence
#' This software is published by *[The Economist](https://www.economist.com)* under the [MIT licence](https://opensource.org/licenses/MIT). The data generated by *The Economist* are available under the [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/).
#' The licences include only the data and the software authored by *The Economist*, and do not cover any *Economist* content or third-party data or content made available using the software. More information about licensing, syndication and the copyright of *Economist* content can be fou
@elliottmorris
elliottmorris / poll_change_trend.gg
Last active October 29, 2020 02:36
Charts the poll-level trend in 2020 polls
library(tidyverse)
library(lubridate)
library(pbapply)
url<- 'https://docs.google.com/spreadsheets/d/e/2PACX-1vQ56fySJKLL18Lipu1_i3ID9JE06voJEz2EXm6JW4Vh11zmndyTwejMavuNntzIWLY0RyhA1UsVEen0/pub?gid=0&single=true&output=csv'
all_polls <- read_csv(url)
# remove any polls if biden or trump blank
all_polls <- all_polls %>% filter(!is.na(biden),!is.na(trump))#, include == "TRUE")
@elliottmorris
elliottmorris / tipping-point_states.R
Last active August 26, 2020 00:18
Code to generate the tipping-point index from our model's simulations
library(pbapply)
library(tidyverse)
mod <- read_csv('~/Downloads/output/site_data/electoral_college_simulations.csv')
mod <- mod %>% gather(state,vote,4:ncol(.))
evs <- read_csv('data/prior/state_evs.csv')
mod <- mod %>% left_join(evs)
tp <- pblapply(1:max(mod$draw),
cl = 12,
@elliottmorris
elliottmorris / polls_biden_v_clinton_2020.R
Last active August 16, 2020 15:16
Code to make a chart that compares Biden's polling numbers to Hillary Clinton's 2016 performance
library(tidyverse)
library(janitor)
library(lubridate)
library(zoo)
library(politicaldata)
RUN_DATE <- Sys.Date()
start_date <- ymd("2020-02-01")
election_day <- ymd('2020-11-03')