Installieren und Laden von Paketen
# Benötigte Pakete laden
library(sf) # geo data handling
library(dplyr) # data crunching
library(data.table) # data crunching
library(tidyverse) # data crunching
library(ggplot2) # plots
library(scales) # scale colorscheme
library(ggrepel) # for labeling
library(stats) # for relevelling
library(sjPlot) # plot
library(stargazer) # table
Daten laden
# Arbeitsverzeichnis definieren
setwd(paste0("~/Desktop/Daten, R, Homeworks, etc/Vorbereitung FS DDJ/Daten_DDJ_HS20_Olat"))
# Dateipfad definieren
file_path1 <- "./Corona-Monitor/2-Daten/CoronaMonitorAll.csv"
# Daten einlesen (Corona-Monitor von sotomo)
Corona_Data <- read.csv(file_path1,
sep = ",",
encoding = "UTF-8",
stringsAsFactors = FALSE)
# Dateipfad definieren
file_path2 <- "./Corona-Monitor/2-Daten/kantonnr.csv"
# Nummerierung der Kantone
ktnr <- read.csv(file_path2,
sep=";",
encoding="UTF-8",
stringsAsFactors = F)
# Dateipfad definieren
file_path3 <- "./Corona-Monitor/2-Daten/ag-b-00.03-875-gg20/ggg_2020-LV95/shp/g2k20.shp"
# Shapefile laden (Karte der Schweiz)
cantons_geo <- read_sf(file_path3)
Karte 1: Vertrauen
# Datensatz für Karte zu Vertrauen erstellen und strukturieren
all_trust <- Corona_Data %>%
mutate(vertrauenNum = as.numeric(stringr::str_extract(vertrauen, "[0-9]+"))) %>%
group_by(Welle, kanton) %>%
mutate(trust = weighted.mean(vertrauenNum , na.rm=T, weight = weight)) %>%
subset(kanton != "- Auslandschweizer/in -") %>%
# Auslandschweizer*innen exkludieren; werden für die Analyse nicht gebraucht
select(kanton, trust, Welle) %>%
distinct() %>%
left_join(
ktnr, by = c("kanton" = "Kanton")) %>%
mutate(Date = case_when(Welle == 1 ~ "21.03. - 23.03.",
Welle == 2 ~ "03.04. - 06.04.",
Welle == 3 ~ "02.05. - 05.05.",
Welle == 4 ~ "05.06. - 08.06.",
Welle == 5 ~ "23.10. - 02.11."))
all_trust$Date <- factor(all_trust$Date, levels = unique(all_trust$Date[order(all_trust$Welle)]))
# Datensatz an Schweizerkarte anbinden
all_trust <- left_join(cantons_geo, all_trust,
by = c("KTNR" = "ktnr"))
# Karte erstellen
map_trust <- ggplot() +
geom_sf(data = cantons_geo,
aes(), fill = "#FCFCFC", color = "#666666", size = 0.4) +
geom_sf(data = all_trust, aes(fill = trust), color = "black", size = 0.08) +
scale_fill_gradient(low = "#b7beed", high = "#2339c2",
na.value = "grey50",
limits = c(min(all_trust$trust), max(all_trust$trust)),
oob = squish,
breaks = c(2.8, 3.2, 3.6, 4.0),
labels = c("2.8: Eher kleines Vertrauen","3.2", "3.6",
"4.0: Eher grosses Vertrauen")) +
theme_void() +
theme(panel.grid.major = element_line("transparent")) +
labs(title = "In der zweiten Corona-Welle hat der Bundesrat viel Vertrauen\nin der Bevökerung verloren\n",
fill = "Stärke des Vertrauens",
caption = "\nFrage: «Wie gross ist Ihr Vertrauen in die politische Führung der Schweiz in Bezug auf\ndie Bewältigung der Corona-Krise?» (1 = «sehr klein» bis 5 = «sehr gross»)\nDaten: Forschungsstelle sotomo (Corona-Monitor 2020)") +
theme(plot.title = element_text(size = 10, face = "bold", hjust = 0),
plot.caption = element_text(size = 7, hjust = 0)) +
theme(legend.position = c(0.75, 0.175)) +
facet_wrap(~Date, nrow = 3, ncol = 2)
map_trust