## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----eval = FALSE------------------------------------------------------------- # relationships <- list( # Cosponsors = list( # Legislators = list(id = "id", relationship = c(">0", "||")), # Bills = list(bill = "bill", relationship = c(">|", "||")) # ) # ) ## ----eval = FALSE------------------------------------------------------------- # relationships <- list( # Legislators = list( # Cosponsors = list(id = "id", relationship = c("||", "0<")) # ), # Cosponsors = list( # Bills = list(bill = "bill", relationship = c(">|", "||")) # ) # ) ## ----eval = FALSE------------------------------------------------------------- # relationships <- list( # Bills = list( # Cosponsors = list(bill = "bill", relationship = c("||", "|<")) # ), # Cosponsors = list( # Legislators = list(id = "id", relationship = c(">0", "||")) # ) # ) ## ----eval = FALSE------------------------------------------------------------- # # ## Load packages # library(ERDbuilder) # library(incidentally) # library(janitor) # library(dplyr) # library(tidyr) # library(tibble) # library(gt) # # # https://cran.r-project.org/web/packages/incidentally/vignettes/congress.html # # ## Download data for example # I <- incidence.from.congress( # session = 115, # types = c("sres"), # areas = c("All"), # format = "data", # narrative = TRUE) # # # ## Define entities. Cosponsors table required some formatting. # legislators_tbl <- I$legislator |> as_tibble() # bills_tbl <- I$bills |> as_tibble() |> clean_names() # cosponsors_tbl <- # I$matrix |> # as.data.frame() |> # rownames_to_column(var = "name") |> # pivot_longer(-name, names_to = "bill", values_to = "sponsored") |> # filter(sponsored == 1) |> # left_join(legislators_tbl, by = join_by(name)) |> # select(id, bill) # # ## Show the first five records of every entity # my_gt <- function(df) { # df |> # gt() |> # tab_style( # style = cell_fill(color = "darkolivegreen1"), # locations = cells_column_labels() # ) # } # # gt_group( # cosponsors_tbl |> head(5) |> my_gt(), # legislators_tbl |> head(5) |> my_gt(), # bills_tbl |> head(5) |> my_gt() # ) # # # ## Figure 1 # ## Define first ERD: cosponsors linked to bills and legislators # relationships <- list( # Cosponsors = list( # Legislators = list(id = "id", relationship = c(">0", "||")), # Bills = list(bill = "bill", relationship = c(">|", "||")) # ) # ) # # ## Create ERD # erd <- create_erd( # list( # Cosponsors = cosponsors_tbl, # Legislators = legislators_tbl, # Bills = bills_tbl # ), # relationships # ) # # ## Render ERD # render_erd(erd, label_distance = 0) # # ## Figure 2 # ### Legislators -> Cosponsors -> Bills # # relationships <- list( # Legislators = list( # Cosponsors = list(id = "id", relationship = c("||", "0<")) # ), # Cosponsors = list( # Bills = list(bill = "bill", relationship = c(">|", "||")) # ) # ) # # erd <- create_erd( # list( # Cosponsors = cosponsors_tbl, # Legislators = legislators_tbl, # Bills = bills_tbl # ), # relationships # ) # # render_erd(erd, label_distance = 0) # # ## Figure 3 # ### Bills -> Cosponsors -> Legislators # # relationships <- list( # Bills = list( # Cosponsors = list(bill = "bill", relationship = c("||", "|<")) # ), # Cosponsors = list( # Legislators = list(id = "id", relationship = c(">0", "||")) # ) # ) # # erd <- create_erd( # list( # Cosponsors = cosponsors_tbl, # Legislators = legislators_tbl, # Bills = bills_tbl # ), # relationships # ) # # render_erd(erd, label_distance = 0) # #