Incidence of involuntary part time workers - INVPT_I

Data - OECD

EMPSTAT

Code
INVPT_I %>%
  left_join(INVPT_I_var$EMPSTAT, by = "EMPSTAT") %>%
  group_by(EMPSTAT, Empstat) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
EMPSTAT Empstat Nobs
TE Total employment 108738
DE Dependent employment 95140

SEX

Code
INVPT_I %>%
  left_join(INVPT_I_var$SEX, by = "SEX") %>%
  group_by(SEX, Sex) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()
SEX Sex Nobs
MEN Men 72121
MW All persons 58614
WOMEN Women 73143

AGE

Code
INVPT_I %>%
  left_join(INVPT_I_var$AGE, by = "AGE") %>%
  group_by(AGE, Age) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()
AGE Age Nobs
1524 15 to 24 34720
1564 15 to 64 34976
2554 25 to 54 34704
5564 55 to 64 34190
6599 65+ 30312
900000 Total 34976

SERIES

Code
INVPT_I %>%
  left_join(INVPT_I_var$SERIES, by = "SERIES") %>%
  group_by(SERIES, Series) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
SERIES Series Nobs
SHINV_LF Share of involuntary part-timers in labour force 43892
SHINV_PO Share of involuntary part-timers in population 43892
SHINV_EMP Share of involuntary part-timers in total employment 43327
SHINV_PT Share of involuntary part-timers as % of part-time employment 43315
SH_INVPT Share of involuntary part-timers 29452

COUNTRY

Code
INVPT_I %>%
  left_join(INVPT_I_var$COUNTRY, by = "COUNTRY") %>%
  group_by(COUNTRY, Country) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Country)),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

obsTime

Code
INVPT_I %>%
  group_by(obsTime) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(obsTime)) %>%
  print_table_conditional()

Share of involuntary part-timers (% of part-time employment)

Table

Code
INVPT_I %>%
  filter(SEX == "MW",
         EMPSTAT == "TE",
         AGE == "900000",
         SERIES == "SHINV_PT") %>%
  left_join(INVPT_I_var$COUNTRY, by = "COUNTRY") %>%
  group_by(COUNTRY, Country) %>%
  summarise(Nobs = n(),
            obsTime = last(obsTime),
            obsValue = last(obsValue)) %>%
  arrange(-obsValue) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Country)),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

Canada, United Kingdom, United States

Code
INVPT_I %>%
  filter(COUNTRY %in% c("CAN", "USA", "GBR", "AUS"),
         SEX == "MW",
         EMPSTAT == "TE",
         AGE == "900000",
         SERIES == "SHINV_PT") %>%
  year_to_date %>%
  left_join(INVPT_I_var$COUNTRY, by = "COUNTRY") %>%
  rename(Location = Country) %>%
  mutate(obsValue = obsValue / 100) %>%
  left_join(colors, by = c("Location" = "country")) %>%
  ggplot() + theme_minimal() + ylab("Share of involuntary part-timers (% of part-time employment)") + xlab("") +
  geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1920, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
                     labels = scales::percent_format(accuracy = 1))

France, United Kingdom, Germany

Code
INVPT_I %>%
  filter(COUNTRY %in% c("FRA", "DEU", "GBR"),
         SEX == "MW",
         EMPSTAT == "TE",
         AGE == "900000",
         SERIES == "SHINV_PT") %>%
  year_to_date %>%
  left_join(INVPT_I_var$COUNTRY, by = "COUNTRY") %>%
  rename(Location = Country) %>%
  mutate(obsValue = obsValue / 100) %>%
  left_join(colors, by = c("Location" = "country")) %>%
  ggplot() + theme_minimal() + ylab("Share of involuntary part-timers (% of part-time employment)") + xlab("") +
  geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = seq(1920, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
                     labels = scales::percent_format(accuracy = 1))

Italy, Spain, Portugal, Greece

Code
INVPT_I %>%
  filter(COUNTRY %in% c("ITA", "ESP", "PRT", "GRC"),
         SEX == "MW",
         EMPSTAT == "TE",
         AGE == "900000",
         SERIES == "SHINV_PT") %>%
  year_to_date %>%
  left_join(INVPT_I_var$COUNTRY, by = "COUNTRY") %>%
  rename(Location = Country) %>%
  mutate(obsValue = obsValue / 100) %>%
  left_join(colors, by = c("Location" = "country")) %>%
  ggplot() + theme_minimal() + ylab("Share of involuntary part-timers (% of part-time employment)") + xlab("") +
  geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1920, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
                     labels = scales::percent_format(accuracy = 1))

France, Italy, Spain, Portugal, Greece

Code
INVPT_I %>%
  filter(COUNTRY %in% c("FRA", "ITA", "ESP", "PRT", "GRC"),
         SEX == "MW",
         EMPSTAT == "TE",
         AGE == "900000",
         SERIES == "SHINV_PT") %>%
  year_to_date %>%
  left_join(INVPT_I_var$COUNTRY, by = "COUNTRY") %>%
  rename(Location = Country) %>%
  mutate(obsValue = obsValue / 100) %>%
  left_join(colors, by = c("Location" = "country")) %>%
  ggplot() + theme_minimal() + ylab("Share of involuntary part-timers (% of part-time employment)") + xlab("") +
  geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = seq(1920, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
                     labels = scales::percent_format(accuracy = 1))