library(tidyverse)
library(janitor)
library(readODS)
library(here)
Abschlussprojekt
<- read_csv(here::here("daten/raw/ts-x-15.02.04.04_detail (2).csv")) |>
daten_in ::clean_names() janitor
# Spaltenbeschriftungen aus ods-Datei in csv-Datensatz einfügen
<- read_ods(here("daten/raw/ts-x-15.02.04.04_detail-APPENDIX.ods"), sheet = "SEX") |>
code_sex select(CODE, LABEL_DE)
<- read_ods(here("daten/raw/ts-x-15.02.04.04_detail-APPENDIX.ods"), sheet = "UNI") |>
code_uni select(CODE, LABEL_DE)
<- read_ods(here("daten/raw/ts-x-15.02.04.04_detail-APPENDIX.ods"), sheet = "FIELD") |>
code_field select(CODE, LABEL_DE)
<- read_ods(here("daten/raw/ts-x-15.02.04.04_detail-APPENDIX.ods"), sheet = "LEVEL") |>
code_level select(CODE, LABEL_DE)
<- read_ods(here("daten/raw/ts-x-15.02.04.04_detail-APPENDIX.ods"), sheet = "PERIOD") |>
code_period select(CODE, LABEL_DE)
# Daten transformieren
<- daten_in |>
daten_processed left_join(code_sex, by = c("sex" = "CODE")) |>
select(-sex) |>
rename(sex = LABEL_DE) |>
left_join(code_uni, by = c("uni" = "CODE")) |>
select(-uni) |>
rename(uni = LABEL_DE) |>
left_join(code_field, by = c("field" = "CODE")) |>
select(-field) |>
rename(field = LABEL_DE) |>
left_join(code_level, by = c("level" = "CODE")) |>
select(-level) |>
rename(level = LABEL_DE) |>
left_join(code_period, by = c("period" = "CODE")) |>
select(-period) |>
rename(period = LABEL_DE)
# Hier werden verschiedene Daten zusammengestellt, um Grafiken zu generieren
# Wieviele Frauen und Männer studieren seit 2000/01 in unterschiedlichen Feldern?
<- daten_processed |>
daten_processed_field_sex group_by(field, sex) |>
summarise(count = sum(value)) |>
mutate(prozent = count / sum(count))
# Wieviele Frauen und Männer studieren in den einzelnen Jahren?
<- daten_processed |>
daten_processed_projahr group_by(period, sex) |>
summarise(count = sum(value))
<- ggplot(data = daten_processed_projahr,
bar_plot_period_sex mapping = aes(x = period, y = count, color = sex, group = sex)) +
geom_point() +
geom_line() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
plot.title = element_text(hjust = 0.5)) +
scale_x_discrete(labels = function(x) sub("Studienjahr ", "", x)) +
scale_y_continuous(
breaks = seq(0, 60000, by = 5000),
limits = c(0, 60000)) +
labs(
title = "Anzahl Studierende pro Studienjahr und nach Geschlecht",
x = "Studienjahr",
y = "Anzahl",
color = "Geschlecht"
)
<- ggplot(data = daten_processed_field_sex,
bar_plot_field_sex mapping = aes(x = reorder(field, count), y = count, fill = sex)) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(aes(label = count),
position = position_dodge(width = 0.9),
vjust = 0.5,
hjust = -0.1,
color = "black",
size = 3) +
coord_flip() +
scale_y_continuous(labels = scales::comma) +
labs(title = "Anzahl Studierende nach Fachbereich und Geschlecht",
x = "Fachbereich",
y = "Anzahl",
fill = "Geschlecht") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
Einleitung
Das Ziel ist, aus dem Bildungsdatensatz des Bundesamts für Statistik (BFS) “Studierende an den Fachhochschulen und pädagogischen Hochschulen nach Jahr, Hochschule, Fachbereich, Studienstufe und Geschlecht” vom 27.03.2025 Erkenntnisse zu gewinnen und diese grafisch darzustellen. Dies deckt sich mit meiner aktuellen Tätigkeit, wird hier aber mit einem öffentlichen Datensatz des Bundesamts für Statistik generiert.
Daten
Die Daten “Studierende an den Fachhochschulen und pädagogischen Hochschulen nach Jahr, Hochschule, Fachbereich, Studienstufe und Geschlecht” stammen vom Bundesamt für Statistik. Die entsprechende .csv-Datei und die dazugehörende .ods-Datei sind unter folgendem Link öffentlich zugänglich: https://www.bfs.admin.ch/asset/de/ts-x-15.02.04.04_detail.
Analyseziele
Aus dem Datensatz werden folgende Erkenntnisse generiert:
- Wie viele Männer und Frauen besuchen Aus- und Weiterbildungsstudiengänge an Schweizer Hochschulen pro Studienjahr?
- Wie viele Männer und Frauen besuchen verschiedene Fachbereiche in Aus- und Weiterbildungsstudiengängen?
Daten Aufbereitung
- Datenpakete installieren
- .csv-Datensatz hochladen und bereinigen
- Spaltenbeschriftungen aus .ods-Datei in .csv-Datensatz einfügen
- Daten transformieren und zusammenstellen (daten_processed)
Daten Visualisierung
+
bar_plot_period_sex scale_x_discrete(expand = c(0.01, 0.01)) +
scale_y_continuous(expand = c(0.01, 0.01))
bar_plot_field_sex