Economic Outlook No 111 - June 2022

Data - OECD

Code
# cd ~/iCloud/website/data; Rscript --vanilla _update_qmd_folder.R oecd only=EO111_INTERNET.qmd
here::i_am("data/oecd/EO111_INTERNET.qmd")
here() starts at /Users/geerolf/Library/CloudStorage/Dropbox/website
Code
source(here::here("code", "R-markdown", "init_oecd.R"))

Attachement du package : 'arrow'
L'objet suivant est masqué depuis 'package:utils':

    timestamp
The following packages have been unloaded:
arrow
Le chargement a nécessité le package : 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
Le chargement a nécessité le package : RPostgres

Le chargement a nécessité le package : scales


Attachement du package : 'scales'


L'objet suivant est masqué depuis 'package:purrr':

    discard


L'objet suivant est masqué depuis 'package:readr':

    col_factor


Le chargement a nécessité le package : knitr

Le chargement a nécessité le package : kableExtra


Attachement du package : 'kableExtra'


L'objet suivant est masqué depuis 'package:dplyr':

    group_rows


Le chargement a nécessité le package : DT

Le chargement a nécessité le package : viridis

Le chargement a nécessité le package : viridisLite


Attachement du package : 'viridis'


L'objet suivant est masqué depuis 'package:scales':

    viridis_pal


Le chargement a nécessité le package : ggrepel

Le chargement a nécessité le package : rsdmx

Le chargement a nécessité le package : mFilter

Le chargement a nécessité le package : OECD

Le chargement a nécessité le package : stargazer


Please cite as: 


 Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.

 R package version 5.2.3. https://CRAN.R-project.org/package=stargazer 


Le chargement a nécessité le package : choroplethr

Le chargement a nécessité le package : choroplethrMaps

Le chargement a nécessité le package : pander

Le chargement a nécessité le package : AER

Le chargement a nécessité le package : car

Le chargement a nécessité le package : carData


Attachement du package : 'car'


L'objet suivant est masqué depuis 'package:dplyr':

    recode


L'objet suivant est masqué depuis 'package:purrr':

    some


Le chargement a nécessité le package : lmtest

Le chargement a nécessité le package : zoo


Attachement du package : 'zoo'


Les objets suivants sont masqués depuis 'package:base':

    as.Date, as.Date.numeric


Le chargement a nécessité le package : sandwich

Le chargement a nécessité le package : survival

Le chargement a nécessité le package : latex2exp

Le chargement a nécessité le package : pracma


Attachement du package : 'pracma'


L'objet suivant est masqué depuis 'package:car':

    logit


L'objet suivant est masqué depuis 'package:purrr':

    cross


Le chargement a nécessité le package : ggimage

Le chargement a nécessité le package : arrow


Attachement du package : 'arrow'


L'objet suivant est masqué depuis 'package:pracma':

    null


L'objet suivant est masqué depuis 'package:lubridate':

    duration


L'objet suivant est masqué depuis 'package:utils':

    timestamp
Code
library(arrow)
# cd ~/iCloud/website/data/oecd; /usr/local/bin/Rscript --vanilla _download_data.R EO111_INTERNET
# cd ~/iCloud/website/data/oecd; /usr/local/bin/Rscript --vanilla _download_one_var2.R EO111_INTERNET
# cd ~/iCloud/website/data/oecd; sh _to_website.sh
EO111_INTERNET <- read_parquet("EO111_INTERNET.parquet")
load_data("oecd/EO111_INTERNET_var2.RData")
nber_recessions <- read_parquet(here::here("data", "us", "nber_recessions.parquet"))

Info

LAST_DOWNLOAD

source dataset Title Download Compile
oecd EO Economic Outlook 2026-04-12 [2026-08-13]
oecd EO112_INTERNET Economic Outlook No 112 - November 2022 NA [2026-08-11]
oecd EO111_INTERNET Economic Outlook No 111 - June 2022 NA [2026-08-11]
oecd EO110_INTERNET Economic Outlook No 110 - December 2021 NA [2026-08-13]
oecd EO109_INTERNET Economic Outlook No 109 - May 2021 NA [2026-08-13]
oecd EO108_INTERNET Economic Outlook No 108 - December 2020 NA [2026-08-13]

LAST_COMPILE

LAST_COMPILE
2026-08-13

Last

obsTime Nobs
2023-Q4 3900

VARIABLE

Code
EO111_INTERNET |>
  left_join(EO111_INTERNET_var$VARIABLE, by = "VARIABLE") %>%
  mutate(Variable = Variable |> substr(1, 120)) |>
  group_by(VARIABLE, Variable) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

FREQUENCY

Code
EO111_INTERNET |>
  left_join(EO111_INTERNET_var$FREQUENCY, by = "FREQUENCY") |>
  group_by(FREQUENCY, Frequency) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
FREQUENCY Frequency Nobs
Q Quarterly 769069
A Annual 382050

Output Gap (% of GDP)

Germany, Spain, Greece, Italy

Code
EO111_INTERNET |>
  filter(FREQUENCY == "A",
         VARIABLE == "GAP",
         LOCATION %in% c("DEU", "ESP", "GRC", "ITA")) |>
  left_join(EO111_INTERNET_var$LOCATION, by = "LOCATION") |>
  year_to_date() |>
  select(Location, date, obsValue) |>
  arrange(Location, date) |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + 
  geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 5),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Output Gap (% of GDP)") + xlab("")

United States, France, Germany, Switzerland

Code
EO111_INTERNET |>
  filter(FREQUENCY == "A",
         VARIABLE == "GAP",
         LOCATION %in% c("CHE", "FRA", "DEU", "USA")) |>
  left_join(EO111_INTERNET_var$LOCATION, by = "LOCATION") |>
  year_to_date() |>
  select(Location, date, obsValue) |>
  arrange(Location, date) |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + 
  geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 5),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Output Gap (% of GDP)") + xlab("")

Unemployment Rate

Germany, Spain, Greece, Italy

All

Code
EO111_INTERNET |>
  filter(FREQUENCY == "Q",
         VARIABLE == "UNR",
         LOCATION %in% c("DEU", "ITA", "FRA", "USA")) |>
  left_join(EO111_INTERNET_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  select(Location, date, obsValue) |>
  arrange(Location, date) |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + 
  geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

1990-

Code
EO111_INTERNET |>
  filter(FREQUENCY == "Q",
         VARIABLE == "UNR",
         LOCATION %in% c("DEU", "ITA", "FRA", "USA")) |>
  left_join(EO111_INTERNET_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  filter(date >= as.Date("1990-01-01")) |>
  select(Location, date, obsValue) |>
  arrange(Location, date) |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + 
  geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")