You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
1.7KB

  1. ---
  2. title: Status Update
  3. author: Garrick Aden-Buie
  4. format: pdf
  5. ---
  6. ```{r setup}
  7. library(tidyverse)
  8. library(fs)
  9. ```
  10. ```{r load-data}
  11. tables <- dir_ls(here::here("data"))
  12. names(tables) <- path_file(tables)
  13. idx_report_list <- which(names(tables) == "report_list")
  14. tbls_arrow <- tables[-idx_report_list] |>
  15. map(arrow::open_dataset, partitioning = "sboe_id")
  16. tbls_arrow$report_list <- arrow::open_dataset(tables["report_list"])
  17. con <- DBI::dbConnect(duckdb::duckdb())
  18. tbls_db <- imap(tbls_arrow, \(t,n) duckdb::duckdb_register_arrow(con, n, t))
  19. ```
  20. ```{r}
  21. tbl(con, "cover") |>
  22. filter(
  23. date_from >= "2016-01-01",
  24. date_from < date_to
  25. ) |>
  26. mutate(
  27. report = case_when(
  28. date_from > (date_to + months(3)) ~ paste0(year(date_from), "-SA-", ifelse(month(date_from) < 6, "1", "2")),
  29. TRUE ~ paste0(year(date_from), "-Q", quarter(date_from))
  30. )
  31. ) |>
  32. count(committee_type, report) |>
  33. arrange(report) |>
  34. ggplot() +
  35. aes(x = report, y = n) +
  36. geom_col() +
  37. facet_wrap(vars(committee_type), scales = "free_y")
  38. ```
  39. ```{r}
  40. all_data_by_sboe_id <- function(sboe_id) {
  41. names(tables) |>
  42. set_names() |>
  43. map(function(name) {
  44. tbl(con, name) |>
  45. filter(sboe_id == !!sboe_id) |>
  46. collect()
  47. })
  48. }
  49. john_bell <- "STA-8S285O-C-001"
  50. dan_forest <- "STA-M4HR0Y-C-001"
  51. mitch_setzer <- "STA-C1877N-C-001"
  52. jb_data <- john_bell |> all_data_by_sboe_id()
  53. jb_data |> writexl::write_xlsx(here::here("reports/2023-09-28_example-john-bell.xlsx"))
  54. df_data <- dan_forest |> all_data_by_sboe_id()
  55. df_data |> writexl::write_xlsx(here::here("reports/2023-09-28_example-dan-forest.xlsx"))
  56. ms_data <- mitch_setzer |> all_data_by_sboe_id()
  57. ms_data |> writexl::write_xlsx(here::here("reports/2023-09-28_example-mitch-setzer.xlsx"))
  58. ```
  59. ```{r}