Intro

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")