Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

35 lines
944B

  1. get_candidate_listing <- function(years = 2016:2023) {
  2. years |>
  3. map(get_candidate_listing_year) |>
  4. bind_rows() |>
  5. type_convert(
  6. col_types = cols(
  7. election_dt = col_date(format = "%m/%d/%Y"),
  8. candidacy_dt = col_date(format = "%m/%d/%Y")
  9. )
  10. ) |>
  11. mutate(
  12. across(
  13. contains("phone"),
  14. \(.x) sub("(\\d{3})(\\d{3})(\\d{4})", "(\\1) \\2-\\3", .x)
  15. ),
  16. across(street_address, fixup_po_box)
  17. ) |>
  18. filter(name_on_ballot != "No Preference") |>
  19. tidyr::replace_na(list(
  20. first_name = "",
  21. middle_name = "",
  22. last_name = "",
  23. name_suffix_lbl = ""
  24. ))
  25. }
  26. get_candidate_listing_year <- function(year) {
  27. url <- glue::glue("https://s3.amazonaws.com/dl.ncsbe.gov/Elections/{year}/Candidate%20Filing/Candidate_Listing_{year}.csv")
  28. read_csv(
  29. url,
  30. col_types = cols(.default = col_character()),
  31. locale = locale(encoding = "latin1")
  32. )
  33. }