This (still under development) R code will allow users to search and parse bulk data from LegiScan.
# Installing and loading required packages
if (!require("tidyverse"))
install.packages("tidyverse")
library(tidyverse)
# Reading raw data files from LegiScan
people <- read_csv("people.csv")
sponsors <- read_csv("sponsors.csv")
bills <- read_csv("bills.csv")
# Assembling raw data files into
# a single dataset
AllData <- left_join(sponsors,people, by = "people_id")
AllData <- left_join(AllData, bills, by = "bill_id")
Outcomes <- AllData %>%
group_by(status_desc, last_action) %>%
summarize(Count = n())
# Filter by legislator name
# Example selects full Rutherford delegation
NameFilter <- c("Robert Stevens",
"Mike Sparts",
"Tim Rudd",
"Charlie Baum",
"Bryan Terry",
"Dawn White",
"Shane Reeves")
# Filter by bill status
# Example filters for "Passed"
StatusFilter <- c("Passed")
# Filter by sponsor position
# Example filters for positions 1 or 2
MyPicks <- AllData %>%
filter(name %in% NameFilter) %>%
filter(status_desc %in% StatusFilter) %>%
filter(position < 2) %>%
select(role, name, party, district, bill_number,
title, description, status_desc, url)
write_csv(MyPicks,"SelectedBills.csv")
# Searching bills by keyword
MeetingsBills <- bills %>%
mutate(Meetings = case_when(grepl("meetings",description)~ "Meeting",
TRUE ~ "No meeting")) %>%
filter(Meetings == "Meeting") %>%
select(bill_number,
status_desc,
status_date,
last_action,
last_action_date,
title,
description,
url,
state_link) %>%
arrange(status_desc,
last_action)
write_csv(MeetingsBills,"SelectedBills.csv")