# Packete updaten
list.of.packages <- c("tidyverse", "dplyr", "data.table", "car", "ggplot2", "ggalt", 
                      "survey", "srvyr", "haven", "reshape2")
install.packages(list.of.packages, repos = "https://stat.ethz.ch/CRAN/")

# Packete laden
lapply(list.of.packages, require, character.only = TRUE)

1. Datensatz laden und vorbereiten

# Datensatz laden
corona.dt <- as.data.frame(fread("raw_data/CoronaMonitorAll.csv",
                              sep = ",",
                              encoding = "UTF-8",
                              stringsAsFactors = FALSE))
# Variablen für Vergleich umformen und Observationen filtern

unique(corona.dt$erwerbNow)
unique(corona.dt$homeoffice)

corona.dt <- corona.dt %>% 
  mutate(Erwerbssituation = case_when(erwerbNow == "Vollzeit angestellt" ~ "Vollzeit",
                                      erwerbNow == "Vollzeit angestellt (80-100%)" ~ "Vollzeit",
                                      erwerbNow == "Teilzeit angestellt (weniger als 80%)" ~ "Teilzeit",
                                      erwerbNow == "Teilzeit angestellt" ~ "Teilzeit",
                                      erwerbNow == "Kurzarbeit / kurzfristig stellenlos" ~ "Kurzarbeit",
                                      erwerbNow == "Kurzarbeit" ~ "Kurzarbeit",
                                      erwerbNow == "Hausfrau / Hausmann" ~ "Haushalt",
                                      erwerbNow == "Selbständig erwerbend" ~ "Selbständig")) %>% #erwerbNow in Vollzeit, Teilzeit, Kurzarbeit und Haushalt, else NA
  filter(Welle %in% (1:2), 
         haushalt == "Familienhaushalt", u16hh == "Ja", sex %in% c("Mann", "Frau")) %>% # nach Eltern und Wellen filtern
  mutate(Homeoffice = case_when(homeoffice == "Ich habe zuvor schon regelmässig im Home Office gearbeitet." ~ "ja",
                                homeoffice == "Ja, ich arbeite nur noch im Home Office" ~ "ja",
                                homeoffice == "Ja, ich arbeite zurzeit nur im Home Office" ~ "ja",
                                homeoffice == "Ja, ich arbeite jetzt zum Teil im Home Office " ~ "teilweise",
                                homeoffice == "Ja, ich arbeite zurzeit teilweise im Home Office " ~ "teilweise",
                                homeoffice == "Nein, das ist in meinem Beruf nicht möglich." ~ "nein",
                                homeoffice == "Nein, die Vorgesetzten erlauben es nicht" ~ "nein",
                                homeoffice == "Nein, das ist nicht möglich" ~ "nein",
                                homeoffice == "Nein, das möchte ich nicht" ~ "nein")) %>% # homeoffice umbenennen, da die Ausprägungen in den beiden Befragungswellen anders heissen.
  mutate(moodAtHome_SQ003 = case_when(moodAtHome_SQ003 == "Ãœberforderung mit Kinderbetreuung: Not selected"  ~ "Ãœberforderung mit Kinderbetreuung: Not selected",
                                      moodAtHome_SQ003 == "Belastung durch Kinderbetreuung und Homeschooling: Not selected"  ~ "Ãœberforderung mit Kinderbetreuung: Not selected",
                                      moodAtHome_SQ003 == "Ãœberforderung mit Kinderbetreuung: Selected" ~ "Ãœberforderung mit Kinderbetreuung: Selected",
                                      moodAtHome_SQ003 == "Belastung durch Kinderbetreuung und Homeschooling: Selected" ~ "Ãœberforderung mit Kinderbetreuung: Selected")) 

2. Veränderung des Wohlbefindens während des Shutdowns.

# Veränderung im Wohlbefinden berechnen

corona_zustand <- select(corona.dt, sex, weight, Welle, wiegehtsHeute, wiegehtsVorher) 

corona_zustand <- corona_zustand %>% 
  mutate(wiegehtsHeute_num = as.numeric(stringr::str_extract
                                        (wiegehtsHeute, "[0-5]+")))
corona_zustand <- corona_zustand %>% 
  mutate(wiegehtsVorher_num = as.numeric(stringr::str_extract 
                                         (wiegehtsVorher, "[0-5]+"))) 

corona_zustand <- corona_zustand %>% 
  mutate(zustandsveränderung_num = wiegehtsHeute_num - wiegehtsVorher_num) #Differenz berechnen
# Welle 1 gewichten

zustand.dt <- corona_zustand %>% 
  filter(Welle == 1) %>% 
  group_by(zustandsveränderung_num, sex) %>%
  summarise(Nweighted=sum(weight), .groups = 'drop') %>% 
  na.omit()
# Extrempunkte zusammennehmen
zustand.dt <- zustand.dt %>% 
  group_by(zustandsveränderung_num, sex) %>% 
  summarise_all(sum) %>% 
  mutate(zustandsveränderung_num = case_when(zustandsveränderung_num == 4 ~ 3,
                                             zustandsveränderung_num == 3 ~ 3,
                                             zustandsveränderung_num == 2 ~ 2,
                                             zustandsveränderung_num == 1 ~ 1,
                                             zustandsveränderung_num == 0 ~ 0,
                                             zustandsveränderung_num == -1 ~ -1,
                                             zustandsveränderung_num == -2 ~ -2,
                                             zustandsveränderung_num == -3 ~ -3,
                                             zustandsveränderung_num == -4 ~ -3)) %>% 
  group_by(zustandsveränderung_num, sex) %>%
  summarise_all(sum)
# Veränderung Wohlbefinden in Prozent nach Geschlecht

zustand.dt <- zustand.dt %>% 
  group_by(sex) %>% 
  mutate(percentage = Nweighted/sum(Nweighted)*100) %>% 
  ungroup()
# Kontrolle Prozent --> 100% pro Geschlecht

aggregate(percentage ~ sex, zustand.dt, sum) 
##    sex percentage
## 1 Frau        100
## 2 Mann        100
# Datensatz für Dumbbell Plot vorbereiten

zustand_dumb.dt <- zustand.dt %>% 
  select(percentage, zustandsveränderung_num, sex) %>% 
  spread(key = sex, value = percentage) %>% 
  mutate(gap_f_m = Frau - Mann) %>% 
  mutate(zustandsveränderung = case_when(zustandsveränderung_num == 3 ~ "sehr viel besser",
                                         zustandsveränderung_num == 2 ~ "viel besser",
                                         zustandsveränderung_num == 1 ~ "etwas besser",
                                         zustandsveränderung_num == 0 ~ "unverändert",
                                         zustandsveränderung_num == -1 ~ "etwas schlechter",
                                         zustandsveränderung_num == -2 ~ "viel schlechter",
                                         zustandsveränderung_num == -3 ~ "sehr viel schlechter"))
# Prozent Label Funktion all

percent_all <- function(x) {
  x <- sprintf("%d%%", round(x))
  x
}
# Setup colour scheme

grey <- "#b2b2b2"
yellow <- "#FFCC33"
violet <- "#9966FF"
l.grey <- "#7a7d7e"
# Dumbbelle Plot Wohlbefinden

zustand.dumbbell.plot <- ggplot(data = zustand_dumb.dt) +
  geom_segment(data = zustand_dumb.dt, aes(y = zustandsveränderung, yend = zustandsveränderung,
                                         x = 0, xend = 60), colour = grey, size = 0.01)+
  aes(y = zustandsveränderung, gap_f_m, x = Frau, xend = Mann)+
  geom_dumbbell(size = 1.5, size_x = 3, size_xend = 3, color = grey, 
                colour_x = violet, colour_xend = yellow)+
  scale_y_discrete(limits = c("sehr viel besser", "viel besser", 
                              "etwas besser", "unverändert", "etwas schlechter", 
                              "viel schlechter", "sehr viel schlechter"))+
  geom_text(data = filter(zustand_dumb.dt, zustandsveränderung == "etwas schlechter"),
            aes(x = Frau, y = zustandsveränderung, label = "Frauen"),
            colour = violet, size = 4.5, vjust = -1.5, hjust = 0.4, fontface = "bold")+
  geom_text(data = filter(zustand_dumb.dt, zustandsveränderung == "etwas schlechter"),
            aes(x = Mann, y = zustandsveränderung, label = "Männer"),
            colour = yellow, size = 4.5, vjust = -1.5, hjust = 0.6, fontface = "bold")+
  geom_text(data = zustand_dumb.dt, aes(x = Mann, y = zustandsveränderung,
                                        label = ifelse(zustandsveränderung %in% c("viel schlechter", "etwas schlechter", "unverändert"), percent_all(Mann), '')), 
            colour = yellow, size = 3.5, vjust = 2.5)+
  geom_text(data = zustand_dumb.dt, aes(x = Frau, y = zustandsveränderung,
                                        label = percent_all(Frau)), 
            colour = violet, size = 3.5, vjust = 2.5)+
  labs(title = "Mütter machten die verordneten Massnahmen öfter zu schaffen als Vätern.",
       subtitle = "Wie geht es Ihnen im Vergleich zu vor dem Shutdown? \nAnzahl Männer und Frauen in Prozent", 
       caption = "\nFragen: «Wie ging es Ihnen vor Beginn der Corona-Krise?» / «Wie geht es Ihnen zurzeit?»\nDaten: Forschungsstelle sotomo (Corona-Monitor , 1./2. Welle , März/April 2020)\nGrafik: Felicia Mändli", 
       x = NULL, y = NULL)+
   theme_bw()+
  theme(
    panel.grid.major = element_blank(),
  panel.grid.minor=element_blank(),
  panel.border=element_blank(),
  axis.ticks=element_blank(),
  axis.text.x=element_blank(),
  plot.title=element_text(size = 15, face="bold"),
  plot.title.position = "plot",
  plot.subtitle=element_text(face="italic", size=11, margin=margin(b=12)),
  plot.caption=element_text(size=8, margin=margin(t=12), color = l.grey)
)
# Dumbbell Plot Wohlbefinden anzeigen

zustand.dumbbell.plot

3. Kinderbetreuung, Homeoffice und Erwerbsarbeit im Shutdown

# Stimmung Welle 1

stimmung.dt.w1 <- corona.dt %>% 
  filter(Welle == 1) %>% 
  select(id, weight, sex, Erwerbssituation, Homeoffice, paste0("moodAtHome_SQ00", 1:9), moodAtHome_SQ010) %>% 
  pivot_longer(cols = c(-id, -weight, -sex, -Erwerbssituation, -Homeoffice), names_to = "moodAtHome", values_to = "question") %>% #tidy data
  separate(question, c("question", "var.label"), ":") %>% 
  mutate(var.code = case_when(var.label == " Selected" ~ 1, 
                              var.label == " Not selected" ~ 0,
                              TRUE ~ NA_real_)) %>% 
  group_by(id) %>% 
  mutate(sum = sum(var.code, na.rm = TRUE)) %>% 
  filter(sum != 0) #schliesst Personen aus, die nichts ausgewählt haben.
# Welle 1 gewichten

stimmung.dt.w1.E <- stimmung.dt.w1 %>% 
  group_by(question, var.code, sex, Erwerbssituation) %>%
  summarise(Nweighted=sum(weight), .groups = 'drop')
# Stimmung Welle 2

stimmung.dt.w2 <- corona.dt %>% 
  filter(Welle == 2) %>% 
  select(id, weight, sex, Erwerbssituation, Homeoffice, paste0("moodAtHome_SQ00", 1:9), moodAtHome_SQ010) %>% 
  pivot_longer(cols = c(-id, -weight, -sex, -Erwerbssituation, -Homeoffice), names_to = "moodAtHome", values_to = "question") %>% #tidy data
  separate(question, c("question", "var.label"), ":") %>% 
  mutate(var.code = case_when(var.label == " Selected" ~ 1, 
                              var.label == " Not selected" ~ 0,
                              TRUE ~ NA_real_)) %>% 
  group_by(id) %>% 
  mutate(sum = sum(var.code, na.rm = TRUE)) %>% 
  filter(sum != 0) #schliesst Personen aus, die nichts ausgewählt haben.
# Welle 2 gewichten

stimmung.dt.w2.E <- stimmung.dt.w2 %>% 
  group_by(question, var.code, sex, Erwerbssituation) %>%
  summarise(Nweighted=sum(weight), .groups = 'drop')
# Wellen zusammenfügen

stimmung.dt.E <- rbind(stimmung.dt.w1.E, stimmung.dt.w2.E)

stimmung.dt.E <- stimmung.dt.E %>% 
  group_by(question, sex, Erwerbssituation, var.code) %>% 
  summarise_all(sum)
# prozente ausrechnen

stimmung.dt.E <- stimmung.dt.E %>% 
  group_by(question, sex, Erwerbssituation) %>% 
  mutate(percentage = Nweighted/sum(Nweighted)*100) %>%   #Prozent aller Männer und Frauen
  filter(var.code == 1) %>%  #nur solche, die der Veränderung "zustimmen"
  mutate(Thema = case_when(question == "Ãœberforderung mit Kinderbetreuung" ~ "Ãœberfordert mit Kinderbetreuung")) %>% 
  na.omit() %>% 
  ungroup() %>% 
  select(-var.code, -question) %>% 
  relocate(Thema, sex, Erwerbssituation, percentage, Nweighted)
# Welle 1 gewichten

stimmung.dt.w1.H <- stimmung.dt.w1 %>% 
  group_by(question, var.code, sex, Homeoffice) %>% 
  summarise(Nweighted = sum(weight), .groups = 'drop')
# Welle 2 gewichten

stimmung.dt.w2.H <- stimmung.dt.w2 %>% 
  group_by(question, var.code, sex, Homeoffice) %>% 
  summarise(Nweighted = sum(weight), .groups = 'drop')
# Wellen zusammenfügen und summieren

stimmung.dt.H <- rbind(stimmung.dt.w1.H, stimmung.dt.w2.H)

stimmung.dt.H <- stimmung.dt.H %>% 
  group_by(question, sex, Homeoffice, var.code) %>% 
  summarise_all(sum)
# Prozente ausrechnen

stimmung.dt.H <- stimmung.dt.H %>% 
  group_by(question, sex, Homeoffice) %>% 
  mutate(percentage = Nweighted/sum(Nweighted)*100) %>%   #Prozent aller Männer/Frauen
  filter(var.code == 1) %>% #nur solche, die der Veränderung "zustimmen"
  mutate(Thema = case_when(question == "Ãœberforderung mit Kinderbetreuung" ~ "Ãœberfordert mit Kinderbetreuung")) %>% 
  na.omit() %>% 
  ungroup() %>% 
  select(-var.code, -question) %>% 
  relocate(Thema, sex, Homeoffice, percentage, Nweighted)
# Stimmung Welle 1

arbeitslast.dt.w1 <- corona.dt %>% 
  filter(Welle == 1) %>% 
  select(id, weight, sex, Erwerbssituation, Homeoffice, paste0("arbeitslast_SQ00", 1:5)) %>% 
  pivot_longer(cols = c(-id, -weight, -sex, -Erwerbssituation, -Homeoffice), names_to = "arbeitslast", values_to = "question") %>%
  separate(question, c("question", "var.label"), ":") %>% 
  mutate(var.code = case_when(var.label == " Selected" ~ 1, 
                              var.label == " Not selected" ~ 0,
                              TRUE ~ NA_real_)) %>% 
  group_by(id) %>% 
  mutate(sum = sum(var.code, na.rm = TRUE)) %>% 
  filter(sum != 0) #schliesst Personen aus, die die Frage nicht beantwortet haben.
# Welle 1 gewichten

arbeitslast.dt.w1.E <- arbeitslast.dt.w1 %>% 
  group_by(question, var.code, sex, Erwerbssituation) %>% 
  summarise(Nweighted = sum(weight), .groups = 'drop')
# Stimmung Welle 2

arbeitslast.dt.w2 <- corona.dt %>% 
  filter(Welle == 2) %>% 
  select(id, weight, sex, Erwerbssituation, Homeoffice, paste0("arbeitslast_SQ00", 1:5)) %>% 
  pivot_longer(cols = c(-id, -weight, -sex, -Erwerbssituation, -Homeoffice), names_to = "arbeitslast", values_to = "question") %>% 
  separate(question, c("question", "var.label"), ":") %>% 
  mutate(var.code = case_when(var.label == " Selected" ~ 1, 
                              var.label == " Not selected" ~ 0,
                              TRUE ~ NA_real_)) %>% 
  group_by(id) %>% 
  mutate(sum = sum(var.code, na.rm = TRUE)) %>% 
  filter(sum != 0) #schliesst Personen aus, die die Frage nicht beantwortet haben.
# Welle 2 gewichten

arbeitslast.dt.w2.E <- arbeitslast.dt.w2 %>% 
  group_by(question, var.code, sex, Erwerbssituation) %>% 
  summarise(Nweighted = sum(weight), .groups = 'drop')
# Wellen zusammenfügen und summieren

arbeitslast.dt.E <- rbind(arbeitslast.dt.w1.E, arbeitslast.dt.w2.E)

arbeitslast.dt.E <- arbeitslast.dt.E %>% 
  group_by(question, sex, Erwerbssituation, var.code) %>% 
  summarise_all(sum)
# prozente ausrechnen

arbeitslast.dt.E <- arbeitslast.dt.E %>% 
  group_by(question, sex, Erwerbssituation) %>% 
  mutate(percentage = Nweighted/sum(Nweighted)*100) %>%  #Prozent aller Männer und Frauen
  filter(var.code == 1) %>%  #nur solche, die der Veränderung zustimmen.
  mutate(Thema = case_when(question == "Weniger Kapazitäten aufgrund von Betreuungspflichten, Homeschooling usw." ~ "Weniger Arbeitskapazität wegen Betreuungspflicht und Homeschooling")) %>% 
  na.omit() %>% 
  ungroup() %>% 
  select(-var.code, -question) %>% 
  relocate(Thema, sex, Erwerbssituation, percentage, Nweighted)
# Welle 1 gewichten

arbeitslast.dt.w1.H <- arbeitslast.dt.w1 %>% 
  group_by(question, var.code, sex, Homeoffice) %>% 
  summarise(Nweighted = sum(weight), .groups = 'drop')
# Welle 2 gewichten

arbeitslast.dt.w2.H <- arbeitslast.dt.w2 %>% 
  group_by(question, var.code, sex, Homeoffice) %>% 
  summarise(Nweighted = sum(weight), .groups = 'drop')
# Wellen zusammenfügen und summieren

arbeitslast.dt.H <- rbind(arbeitslast.dt.w1.H, arbeitslast.dt.w2.H)

arbeitslast.dt.H <- arbeitslast.dt.H %>% 
  group_by(question, sex, Homeoffice, var.code) %>% 
  summarise_all(sum)
# Prozente ausrechnen

arbeitslast.dt.H <- arbeitslast.dt.H %>% 
  group_by(question, sex, Homeoffice) %>% 
  mutate(percentage = Nweighted/sum(Nweighted)*100) %>%  #Prozent aller Männer/Frauen
  filter(var.code == 1) %>%  #nur solche, die der Veränderung zustimmen
  mutate(Thema = case_when(question == "Weniger Kapazitäten aufgrund von Betreuungspflichten, Homeschooling usw." ~ "Weniger Arbeitskapazität wegen Betreuungspflicht und Homeschooling")) %>% 
  na.omit() %>% 
  ungroup() %>% 
  select(-var.code, -question) %>% 
  relocate(Thema, sex, Homeoffice, percentage, Nweighted)

Dumbbell Plots zur Erwerbssituation

  1. Ãœberforderung mit Kinderbetreuung
kinderbetreuung.E.dt <- stimmung.dt.E %>% 
  mutate(Geschlecht = case_when(sex == "Mann" ~ "Mann",
                                sex == "Frau" ~ "Frau")) %>% 
  select(-sex) %>% 
  select(percentage, Thema, Erwerbssituation, Geschlecht) %>% 
  spread(key = Geschlecht, value = percentage) %>% 
  mutate(gap_f_m_kinderE = Frau - Mann)
# Dumbbell Plot Erwerbssituation ~ Kinderbetreuung

kinderbetreuung.E.dumb <- ggplot(data = kinderbetreuung.E.dt)+
  geom_segment(data = kinderbetreuung.E.dt, aes(y = Erwerbssituation, yend = Erwerbssituation,
                                                  x = 25, xend = 50), colour = grey, size = 0.1)+
aes(y = Erwerbssituation, gap_f_m_kinderE, x = Frau, xend = Mann)+
  geom_dumbbell(size = 1.5, size_x = 3, size_xend = 3, color = grey, 
                colour_x = violet, colour_xend = yellow)+
  scale_y_discrete(limits = c("Teilzeit", "Vollzeit", "Kurzarbeit", "Selbständig", 
                              "Haushalt"),
                   labels = c("Teilzeit", "Vollzeit", "Kurzarbeit", "Selbständig", 
                              "Hausfrau/Hausmann"))+
  geom_text(data = filter(kinderbetreuung.E.dt, Erwerbssituation == "Haushalt"),
            aes(x = Frau, y = Erwerbssituation, label = "Frauen"),
            colour = violet, size = 4.5, vjust = -1.5, hjust = 0.3, fontface = "bold")+
  geom_text(data = filter(kinderbetreuung.E.dt, Erwerbssituation == "Haushalt"),
            aes(x = Mann, y = Erwerbssituation, label = "Männer"),
            colour = yellow, size = 4.5, vjust = -1.5, hjust = 0.7, fontface = "bold")+
  geom_text(data = kinderbetreuung.E.dt, aes(x = Mann, y = Erwerbssituation,
                                        label = ifelse(Erwerbssituation %in% c("Teilzeit", "Vollzeit", "Kurzarbeit", "Selbständig", "Haushalt"), percent_all(Mann), '')), 
            colour = yellow, size = 3.5, vjust = 2.5, hjust = 0.8)+
  geom_text(data = kinderbetreuung.E.dt, aes(x = Frau, y = Erwerbssituation,
                                        label = percent_all(Frau)), 
            colour = violet, size = 3.5, vjust = 2.5, hjust = 0.2)+
  labs(title = "Die Überforderung mangels externer Kinderbetreuung während dem Shutdown \nwar gross.",
       subtitle = "Haben Sie während dem Shutdown eine zusätzliche Belastung durch Kinderbetreuung und Homeschooling verspürt? \nAnzahl Männer und Frauen in Prozent, gruppiert nach Erwerbssituation.", 
       caption = "\nFrage: «Wie wirkt sich die aktuelle Situation bei Ihnen zuhause aus? Antwortoption: Belastung durch Kinderbetreuung und Homeschooling.»\nDaten: Forschungsstelle sotomo (Corona-Monitor , 1./2. Welle , März/April 2020)\nGrafik: Felicia Mändli", 
       x = NULL, y = NULL)+
   theme_bw()+
  theme(
  panel.grid.major = element_blank(),
  panel.grid.minor=element_blank(),
  panel.border=element_blank(),
  axis.ticks=element_blank(),
  axis.text.x=element_blank(),
  plot.title=element_text(size = 15, face="bold"),
  plot.title.position = "plot",
  plot.subtitle=element_text(face="italic", size=11, margin=margin(b=12)),
  plot.caption=element_text(size=8, margin=margin(t=12), color = l.grey)
)
# Dumbbell Plot Erwerbssituation ~ Kinderbetreuung anzeigen

kinderbetreuung.E.dumb

  1. Weniger Arbeitskapazität wegen Betreuungspflicht und Homeschooling
arbeitslast.E.dt <- arbeitslast.dt.E %>% 
  mutate(Geschlecht = case_when(sex == "Mann" ~ "Mann",
                                sex == "Frau" ~ "Frau")) %>% 
  select(-sex) %>% 
  select(percentage, Thema, Erwerbssituation, Geschlecht) %>% 
  spread(key = Geschlecht, value = percentage) %>% 
  mutate(gap_f_m_arbeitE = Frau - Mann)
# Dumbbell Plot Erwerbssituation ~ Arbeitslast

arbeitslast.E.dumb <- ggplot(data = arbeitslast.E.dt)+
  geom_segment(data = arbeitslast.E.dt, aes(y = Erwerbssituation, yend = Erwerbssituation,
                                                  x = 0, xend = 50), colour = grey, size = 0.1)+
aes(y = Erwerbssituation, gap_f_m_arbeitE, x = Frau, xend = Mann)+
  geom_dumbbell(size = 1.5, size_x = 3, size_xend = 3, color = grey, 
                colour_x = violet, colour_xend = yellow)+
  scale_y_discrete(limits = c("Teilzeit", "Vollzeit", "Kurzarbeit", "Selbständig"),
                   labels = c("Teilzeit", "Vollzeit", "Kurzarbeit", "Selbständig"))+
  geom_text(data = filter(arbeitslast.E.dt, Erwerbssituation == "Selbständig"),
            aes(x = Frau, y = Erwerbssituation, label = "Frauen"),
            colour = violet, size = 4.5, vjust = -1.5, hjust = 0.4, fontface = "bold")+
  geom_text(data = filter(arbeitslast.E.dt, Erwerbssituation == "Selbständig"),
            aes(x = Mann, y = Erwerbssituation, label = "Männer"),
            colour = yellow, size = 4.5, vjust = -1.5, hjust = 0.6, fontface = "bold")+
  geom_text(data = arbeitslast.E.dt, aes(x = Mann, y = Erwerbssituation,
                                        label = ifelse(Erwerbssituation %in% c("Teilzeit", "Vollzeit", "Selbständig", "Haushalt"), percent_all(Mann), '')), 
            colour = yellow, size = 3.5, vjust = 2.5, hjust = 0.8)+
  geom_text(data = arbeitslast.E.dt, aes(x = Frau, y = Erwerbssituation,
                                        label = percent_all(Frau)), 
            colour = violet, size = 3.5, vjust = 2.5, hjust = 0.2)+
  labs(title = "Vorwiegend Mütter haben ihre Arbeitszeit reduziert, um die weggefallenen \nFremdbetreuung zu kompensieren.",
       subtitle = "Hatten Sie während dem Lockdown weniger Arbeitskapazität aufgrund von Betreuungspflicht und Homeschooling? \nAnzahl Männer und Frauen in Prozent, gruppiert nach Erwerbssituation.", 
       caption = "\nFrage: «Wie hat sich Ihre berufliche Arbeitsbelastung im Vergleich zu vorher verändert? Antwortoption: Weniger Kapazitäten aufgrund von Betreuungspflichten, Homeschooling usw.»\nDaten: Forschungsstelle sotomo (Corona-Monitor , 1./2. Welle , März/April 2020)\nGrafik: Felicia Mändli", 
       x = NULL, y = NULL)+
   theme_bw()+
  theme(
  panel.grid.major = element_blank(),
  panel.grid.minor=element_blank(),
  panel.border=element_blank(),
  axis.ticks=element_blank(),
  axis.text.x=element_blank(),
  plot.title=element_text(size = 15, face="bold"),
  plot.title.position = "plot",
  plot.subtitle=element_text(face="italic", size=11, margin=margin(b=12)),
  plot.caption=element_text(size=8, margin=margin(t=12), color = l.grey)
)
# Dumbbell Plot Erwerbssituation ~ Arbeitslast anzeigen

arbeitslast.E.dumb

Dumbbell Plots zum Homeoffice

  1. Ãœberforderung mit Kinderbetreuung
kinderbetreuung.H.dt <- stimmung.dt.H %>% 
  mutate(Geschlecht = case_when(sex == "Mann" ~ "Mann",
                                sex == "Frau" ~ "Frau")) %>% 
  select(-sex) %>% 
  select(percentage, Thema, Homeoffice, Geschlecht) %>% 
  spread(key = Geschlecht, value = percentage) %>% 
  mutate(gap_f_m_kinderH = Frau - Mann)
# Dumbbell Plot Homeoffice ~ Kinderbetreuung 

kinderbetreuung.H.dumb <- ggplot(data = kinderbetreuung.H.dt)+
  geom_segment(data = kinderbetreuung.H.dt, aes(y = Homeoffice, yend = Homeoffice,
                                                  x = 25, xend = 50), colour = grey, size = 0.1)+
aes(y = Homeoffice, gap_f_m_kinderH, x = Frau, xend = Mann)+
  geom_dumbbell(size = 1.5, size_x = 3, size_xend = 3, color = grey, 
                colour_x = violet, colour_xend = yellow) +
  scale_y_discrete(limits = c("nein", "teilweise", "ja"),
                   labels = c("kein Homeoffice", "teilweise Homeoffice", 
                              "immer Homeoffice"))+
  geom_text(data = filter(kinderbetreuung.H.dt, Homeoffice == "ja"),
            aes(x = Frau, y = Homeoffice, label = "Frauen"),
            colour = violet, size = 4.5, vjust = -1.5, hjust = 0.4, fontface = "bold")+
  geom_text(data = filter(kinderbetreuung.H.dt, Homeoffice == "ja"),
            aes(x = Mann, y = Homeoffice, label = "Männer"),
            colour = yellow, size = 4.5, vjust = -1.5, hjust = 0.6, fontface = "bold")+
  geom_text(data = kinderbetreuung.H.dt, aes(x = Mann, y = Homeoffice,
                                        label = ifelse(Homeoffice %in% c("nein", "teilweise", "ja"), percent_all(Mann), '')), 
            colour = yellow, size = 3.5, vjust = 2.5, hjust = 0.8)+
  geom_text(data = kinderbetreuung.H.dt, aes(x = Frau, y = Homeoffice,
                                        label = percent_all(Frau)), 
            colour = violet, size = 3.5, vjust = 2.5, hjust = 0.2)+
  labs(title = "Fast die Hälfte aller Mütter, die teilweise oder vollständig von zu Hause aus arbeiteten, \nwaren mit der Kinderbetreuung überfordert.",
       subtitle = "Haben Sie während dem Shutdown eine zusätzliche Belastung durch Kinderbetreuung und Homeschooling verspürt? \nAnzahl Männer und Frauen in Prozent, gruppiert nach Homeofficesituation.", 
       caption = "\nFrage: «Wie hat sich Ihre berufliche Arbeitsbelastung im Vergleich zu vorher verändert? Antwortoption: Weniger Kapazitäten aufgrund von Betreuungspflichten, Homeschooling usw.»\nDaten: Forschungsstelle sotomo (Corona-Monitor , 1./2. Welle , März/April 2020)\nGrafik: Felicia Mändli", 
       x = NULL, y = NULL)+
   theme_bw()+
  theme(
  panel.grid.major = element_blank(),
  panel.grid.minor=element_blank(),
  panel.border=element_blank(),
  axis.ticks=element_blank(),
  axis.text.x=element_blank(),
  plot.title=element_text(size = 15, face="bold"),
  plot.title.position = "plot",
  plot.subtitle=element_text(face="italic", size=11, margin=margin(b=12)),
  plot.caption=element_text(size=8, margin=margin(t=12), color = l.grey)
)
# Dumbbell Plot Homeoffice ~ Kinderbetreuung anzeigen

kinderbetreuung.H.dumb

  1. Weniger Arbeitskapazität wegen Betreuungspflicht und Homeschooling
arbeitslast.H.dt <- arbeitslast.dt.H %>% 
  mutate(Geschlecht = case_when(sex == "Mann" ~ "Mann",
                                sex == "Frau" ~ "Frau")) %>% 
  select(-sex) %>% 
  select(percentage, Thema, Homeoffice, Geschlecht) %>% 
  spread(key = Geschlecht, value = percentage) %>% 
  mutate(gap_f_m_arbeitH = Frau - Mann)
# Dumbbell Plot Homeoffice ~ Arbeitslast

arbeitslast.H.dumb <- ggplot(data = arbeitslast.H.dt)+
  geom_segment(data = arbeitslast.H.dt, aes(y = Homeoffice, yend = Homeoffice,
                                                  x = 0, xend = 50), colour = grey, size = 0.1)+
aes(y = Homeoffice, gap_f_m_kinderH, x = Frau, xend = Mann)+
  geom_dumbbell(size = 1.5, size_x = 3, size_xend = 3, color = grey, 
                colour_x = violet, colour_xend = yellow) +
  scale_y_discrete(limits = c("nein", "teilweise", "ja"),
                   labels = c("kein Homeoffice", "teilweise Homeoffice", 
                              "immer Homeoffice"))+
  geom_text(data = filter(arbeitslast.H.dt, Homeoffice == "ja"),
            aes(x = Frau, y = Homeoffice, label = "Frauen"),
            colour = violet, size = 4.5, vjust = -1.5, hjust = 0.4, fontface = "bold")+
  geom_text(data = filter(arbeitslast.H.dt, Homeoffice == "ja"),
            aes(x = Mann, y = Homeoffice, label = "Männer"),
            colour = yellow, size = 4.5, vjust = -1.5, hjust = 0.6, fontface = "bold")+
  geom_text(data = arbeitslast.H.dt, aes(x = Mann, y = Homeoffice,
                                        label = ifelse(Homeoffice %in% c("nein", "teilweise", "ja"), percent_all(Mann), '')), 
            colour = yellow, size = 3.5, vjust = 2.5, hjust = 0.8)+
  geom_text(data = arbeitslast.H.dt, aes(x = Frau, y = Homeoffice,
                                        label = percent_all(Frau)), 
            colour = violet, size = 3.5, vjust = 2.5, hjust = 0.2)+
  labs(title = "Eltern im Homeoffice haben öfters ihre Arbeitszeit zu Gunsten der Kinderbetreuung \nreduziert, als solche, die auswärts arbeiten.",
       subtitle = "Hatten Sie während dem Lockdown weniger Arbeitskapazität aufgrund von Betreuungspflicht und Homeschooling? \nAnzahl Männer und Frauen in Prozent, gruppiert nach Homeofficesituation.", 
       caption = "\nFrage: «Wie hat sich Ihre berufliche Arbeitsbelastung im Vergleich zu vorher verändert? Antwortoption: Weniger Kapazitäten aufgrund von Betreuungspflichten, Homeschooling usw.»\nDaten: Forschungsstelle sotomo (Corona-Monitor , 1./2. Welle , März/April 2020)\nGrafik: Felicia Mändli", 
       x = NULL, y = NULL)+
   theme_bw()+
  theme(
  panel.grid.major = element_blank(),
  panel.grid.minor=element_blank(),
  panel.border=element_blank(),
  axis.ticks=element_blank(),
  axis.text.x=element_blank(),
  plot.title=element_text(size = 15, face="bold"),
  plot.title.position = "plot",
  plot.subtitle=element_text(face="italic", size=11, margin=margin(b=12)),
  plot.caption=element_text(size=8, margin=margin(t=12), color = l.grey)
)
# Dumbbell Plot Homeoffice ~ Arbeitslast anzeigen

arbeitslast.H.dumb