Unemployment 2006-2009 - unemp.2006.2009

Intermediate Macroeconomics, Econ 102

()



::: {.cell}

```{.r .cell-code}
# cd ~/iCloud/website/data; Rscript --vanilla _update_qmd_folder.R bls-la only=unemp.2006.2009.qmd
# sh ~/iCloud/website/website_short.sh
here::i_am("data/bls-la/unemp.2006.2009.qmd")
# here() starts at /Users/geerolf/Dropbox/website
Code
library(tidyverse)
# ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
# ✔ dplyr     1.2.1     ✔ readr     2.2.0
# ✔ forcats   1.0.1     ✔ stringr   1.6.0
# ✔ ggplot2   4.0.3     ✔ tibble    3.3.1
# ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
# ✔ purrr     1.2.2
# ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
# ✖ dplyr::filter() masks stats::filter()
# ✖ dplyr::lag()    masks stats::lag()
# ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Code
library(arrow)
# 
# Attachement du package : 'arrow'
# 
# L'objet suivant est masqué depuis 'package:lubridate':
# 
#     duration
# 
# L'objet suivant est masqué depuis 'package:utils':
# 
#     timestamp
Code
source(here::here("code", "basic_functions.R"))
la.data.0 <- list.files(here::here("data", "bls"), "^la\\.data\\.0\\.CurrentU.*\\.parquet$", full.names = TRUE) |>
  map(\(f) read_parquet(f) |> mutate(across(everything(), as.character))) |>
  list_rbind() |>
  mutate(year = as.numeric(year), value = as.numeric(value))
la.series <- read_parquet(here::here("data", "bls", "la.series.parquet"))

la.data.0.extract <- la.data.0 |>
  select(-footnote_codes) |>
  full_join(la.series, by = "series_id") |>
  mutate(value = as.numeric(value)) |>
  filter(!is.na(value)) |>
  arrange(series_id, year, period)

la.data.0.county.yearly <- la.data.0 |>
  select(-footnote_codes) |>
  full_join(la.series, by = "series_id") |>
  mutate(value = as.numeric(value)) |>
  filter(!is.na(value)) |>
  arrange(series_id, year, period) |>
  mutate(area_code = paste(area_code),
         area_type = substr(area_code, 1, 2),
         fips = as.numeric(substr(area_code, 3, 7))) |>
  filter(area_type == "CN", period == "M13") |>
  select(fips, year, measure_code, value) |>
  arrange(fips, year, measure_code)

la.data.0.county.monthly <- la.data.0 |>
  select(-footnote_codes) |>
  full_join(la.series, by = "series_id") |>
  mutate(value = as.numeric(value)) |>
  filter(!is.na(value)) |>
  arrange(series_id, year, period) |>
  mutate(area_code = paste(area_code),
         area_type = substr(area_code, 1, 2),
         fips = as.numeric(substr(area_code, 3, 7)),
         month = as.numeric(substr(period, 2, 3)),
         year = year + (month-1)/12) |>
  filter(area_type == "CN", period != "M13") |>
  select(fips, year, measure_code, value) |>
  arrange(fips, year, measure_code)

unemp.2006.2009 <- la.data.0 |>
  select(-footnote_codes) |>
  full_join(la.series, by = "series_id") |>
  mutate(value = as.numeric(value)) |>
  filter(!is.na(value)) |>
  arrange(series_id, year, period) |>
  mutate(area_code = paste(area_code),
         area_type = substr(area_code, 1, 2),
         fips = as.numeric(substr(area_code, 3, 7))) |>
  filter(area_type == "CN", period == "M13") |>
  select(fips, year, measure_code, value) |>
  arrange(fips, year, measure_code) |>
  filter(measure_code == 3, year %in% c(2006, 2009)) |>
  select(-measure_code) |>
  spread(year, value) |>
  select(fips, unemp2006 = `2006`, unemp2009 = `2009`)

# Pas de write_parquet ici : unemp.2006.2009.parquet est l entree figee de la
# replication KaplanMitmanViolante2018 (LAUS revise depuis -> valeurs 2009 differentes).
unemp.2006.2009 |> head()
#   fips unemp2006 unemp2009
# 1 1001       3.3       8.6
# 2 1003       3.2       8.6
# 3 1005       5.7      12.7
# 4 1007       4.2      11.7
# 5 1009       3.2       8.8
# 6 1011       8.8      13.9

:::