## ----opts, include = FALSE---------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----install, eval = FALSE---------------------------------------------------- # install.packages("rKolada") ## ----setup-------------------------------------------------------------------- library("rKolada") ## ----datapoint_mock, eval = FALSE--------------------------------------------- # n00945 <- get_values( # kpi = "N00945", # municipality = c("0180", "1480", "1280"), # period = 2000:2020 # ) # # head(n00945) ## ----datapoint, echo = FALSE-------------------------------------------------- n00945 <- rKolada:::n00945 tibble::tibble(head(n00945)) ## ----kpi_df_mock, eval = FALSE------------------------------------------------ # # Download all KPI metadata as a tibble (kpi_df) # kpi_df <- get_kpi() # # head(kpi_df, n = 10) ## ----kpi_df, echo = FALSE----------------------------------------------------- kpi_df <- rKolada:::kpi_df tibble::tibble(head(kpi_df, n = 10)) ## ----kpi_filter--------------------------------------------------------------- # Search for KPIs with the term "skola" in their description or title kpi_filter <- kpi_df |> kpi_search("skola", column = c("description", "title")) tibble::tibble(head(kpi_filter)) ## ----munic_g_mock, eval = FALSE----------------------------------------------- # # Search for municipality groups containing the name "Arboga" # munic_g <- get_municipality_groups() # # arboga_groups <- munic_g |> municipality_grp_search("Arboga") # arboga_groups ## ----munic_g, echo = FALSE---------------------------------------------------- munic_g <- rKolada:::munic_g arboga_groups <- munic_g |> municipality_grp_search("Arboga") arboga_groups ## ----describe_example, results='asis'----------------------------------------- kpi_filter |> kpi_describe(max_n = 2, format = "md", heading_level = 4) ## ----keywords_example--------------------------------------------------------- # Add keywords to a KPI table kpis_with_keywords <- kpi_filter |> kpi_bind_keywords(n = 4) # count keywords kpis_with_keywords |> tidyr::pivot_longer(dplyr::starts_with("keyword"), values_to = "keyword") |> dplyr::count(keyword, sort = TRUE) ## ----------------------------------------------------------------------------- # Top 10 rows of the table kpi_filter |> dplyr::slice(1:10) # Top 10 rows of the table, with non-distinct data removed kpi_filter |> dplyr::slice(1:10) |> kpi_minimize() ## ----echo = FALSE------------------------------------------------------------- kpi_filter <- rKolada:::kpi_filter munic_grp_filter <- rKolada:::munic_grp_filter arboga <- rKolada:::arboga grp_data <- rKolada:::grp_data ## ----eval = FALSE------------------------------------------------------------- # # Get KPIs describing Gross Regional Product of municipalities # kpi_filter <- get_kpi() |> # kpi_search("bruttoregionprodukt") |> # kpi_search("K", column = "municipality_type") # # Creates a table with two rows # # # Get a suitable group of municipalities # munic_grp_filter <- get_municipality_groups() |> # municipality_grp_search("Liknande kommuner socioekonomi, Arboga") # # Creates a table with one group of 7 municipalities # # # Also include Arboga itself # arboga <- get_municipality() |> municipality_search("Arboga") # # # Get data # grp_data <- get_values( # kpi = kpi_extract_ids(kpi_filter), # municipality = c( # municipality_grp_extract_ids(munic_grp_filter), # municipality_extract_ids(arboga) # ) # ) ## ----------------------------------------------------------------------------- # Visualize results library("ggplot2") ggplot(grp_data, aes(year, value, color = municipality)) + # One line per municipality; linetype adds distinction in B/W print geom_line(aes(linetype = municipality)) + # Separate panel per KPI; free y-scales since units differ facet_grid(kpi ~ ., scales = "free") + labs( title = "Gross Regional Product per capita 2012-2018", subtitle = "Swedish municipalities similar to Arboga", caption = values_legend(grp_data, kpi_filter) # Auto-generated legend ) + # Colour-blind-friendly palette scale_color_viridis_d(option = "B") + scale_y_continuous(labels = scales::comma)