class: center, middle, inverse, title-slide .title[ # Case-Study zur Arbeitslosigkeit in Deutschland ] --- <style type="text/css"> .remark-code{line-height: 1.5; font-size: 80%} @media print { .has-continuation { display: block; } } </style> # Ziel der Case-Study Deutschland hat europaweit eine der niedrigsten Arbeitslosenquoten: .pull-left[ <img src="figs/EU_Unemployment.svg" width="70%" /> .small[Quelle: [Von Heycci - Daten von Eurostat, CC BY-SA 2.5](https://commons.wikimedia.org/w/index.php?curid=33607327)] ] -- .pull-right[ .question[Doch gilt dies für alle Regionen in Deutschland? Warum ist die Arbeitslosenquote in manchen Regionen höher als in anderen?] .alert[Dem wollen wir in dieser Case-Study auf den Grund gehen.] ] --- # Ziele der Case Study Diese Case-Study besteht aus **mehreren Teilen** und wird Sie durch die komplette Vorlesung als **konkretes Anschauungsobjekt** begleiten. Diese Case-Study dient als: - konkretes und umfangreiches Beispiel für ein Projekt - ökonomische und geographische Kenntnisse über Deutschland erhalten - Beispiel wie statistische und programmiertechnische Kenntnisse in der empirischen Arbeit eingesetzt werden können --- class: inverse, center, middle # Datensätze herunterladen --- ## Ersten Teil der Case Study - Daten einlesen - Daten bearbeiten und in eine geeignete Form bringen ( `tidy` ) Anwenden auf - Daten zur Arbeitslosenstatistik - Daten zur Verschuldung einzelner Landkreise bzw. Gemeinden - Daten zum BIP --- ## Wichtig für die Datenbeschaffung - Zuverlässige und qualitativ hochwertige Datenquellen ausfinding machen - Automatisierten Download programmieren - Einlesen, verarbeiten und zusammenführen verschiedener Datensätze in R -- Verbindung zum 2. RTutor Problem Set: - **Im Problem Set:** Kennzahlen zu verschiedenen Ländern der europäischen Union - **Hier:** Kennzahlen innerhalb Deutschlands -- .alert[Sowohl in der Case-Study als auch in den RTutor Problem Sets treffen Sie auf konkrete Probleme, die Sie mit ihren Kenntnissen aus der Vorlesung lösen sollen.] --- ## Daten beschaffen Woher beziehen wir unsere Informationen? -- - Die Informationen über die Verschuldung der **Gemeinden** finden wir auf den Seiten des Statistischen Bundesamts im Report: [Integrierte Schulden der Gemeinden und Gemeindeverbände](https://www.statistikportal.de/de/veroeffentlichungen/integrierte-schulden-der-gemeinden-und-gemeindeverbaende). - Die Informationen zur Arbeitslosigkeit auf **Verwaltungsgemeinschaftsebene** finden wir auf den Seiten der [Bundesagentur für Arbeit](https://statistik.arbeitsagentur.de/DE/Navigation/Statistiken/Statistiken-nach-Regionen/BA-Gebietsstruktur-Nav.html). - Die Informationen zum BIP auf **Landkreisebene** finden wir auf den Seiten der [Statistischen Ämter des Bundes und der Länder](https://www.statistikportal.de/de/vgrdl). -- .instructions[Zuverlässige und qualitativ hochwertige Datenquellen ausfinding machen] ✔️ --- ## Nötige Pakete laden --- ```r library(readxl) library(skimr) library(tidyverse) ``` ``` ## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ── ## ✔ dplyr 1.1.2 ✔ readr 2.1.4 ## ✔ forcats 1.0.0 ✔ stringr 1.5.0 ## ✔ ggplot2 3.4.2 ✔ tibble 3.2.1 ## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0 ## ✔ purrr 1.0.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 ``` --- ## Daten herunterladen - Daten können von URLs mit Befehlen aus den Paketen `readxl` und `readr` direkt eingelesen werden - Für Text und Excel-Dateien - Allerdings, wenn URL nicht mehr verfügbar, was dann? - Daten immer mit `download.file()` herunterladen und in einem Unterordner `data` abspeichern! -- .instructions[Automatisierten Download programmieren (wird in der ausformulierten Case-Study gemacht)] (✔️) -- .alert[Wir haben die Daten bereits im Github Repository `case-study-germany` heruntergeladen und abgespeichert. Klonen Sie dieses Repository von Github auf ihren PC!] --- ## Klonen Sie unsere Github Seite - Gehen Sie auf die [Github Seite des Projektkurses](https://github.com/projektkurs-datascience/23-24) - Klicken Sie auf des grünen "Code" Button - Kopieren Sie sich die [angezeigte HTTPS](https://github.com/projektkurs-datascience/23-24.git) - Gehen Sie in Github Desktop und fügen dort die kopierte HTTPS in "Clone a repository" -> "URL" [Hier eine Step-by-Step Anleitung](https://docs.github.com/desktop/contributing-and-collaborating-using-github-desktop/adding-and-cloning-repositories/cloning-a-repository-from-github-to-github-desktop?platform=windows) .alert[Wenn Sie zu Beginn der Woche in Github Desktop auf "Pull" klicken werden alle Vorlesungsinhalte automatisch aktualisiert, d.h. alle Vorlesungsfolien, die Case-Study, Tutorials etc.!]
−
+
05
:
00
--- # Daten einlesen Unterschiedliche Dateien und unterschiedliche Tabellenblätter, was sollten wir verwenden? ```r # Öffnen des ZIP-Archivs # Es sind zwei Tabellen in dem ZIP Archiv, wir interessieren uns für die Anzahl der Arbeitslosen und wählen diese mit dem kleinen [1] aus alo_name <- as.character(unzip("../case-study/data/Arbeitslose_2021.xlsx.zip", list = TRUE)$Name) alo_name <- alo_name[1] unzip("../case-study/data/Arbeitslose_2021.xlsx.zip", alo_name) ``` -- **Vermutung:** Durch Tabellenblatt "Inhaltsverzeichnis" könnten wir schlauer werden --- ```r alo_inhalt <- read_xlsx(alo_name, sheet = "Inhaltsverzeichnis") head(alo_inhalt, 15) ``` ``` ## # A tibble: 15 × 1 ## Inhaltsverzeichnis ## <chr> ## 1 <NA> ## 2 <NA> ## 3 Arbeitslose - Zeitreihe ## 4 <NA> ## 5 <NA> ## 6 Tabelle ## 7 Bestand an Arbeitslosen ## 8 Kreiszusammenfassung ## 9 Übersicht nach Kreisen ## 10 <NA> ## 11 Insgesamt ## 12 Rechtskreis ## 13 SGB III ## 14 SGB II ## 15 Geschlecht ``` --- ```r alo_inhalt <- read_xlsx(alo_name, sheet = "Inhaltsverzeichnis") head(alo_inhalt, 15) ``` ```r ## # A tibble: 15 × 1 ## Inhaltsverzeichnis ## <chr> ## 1 NA ## 2 NA ## 3 Arbeitslose - Zeitreihe ## 4 NA ## 5 NA ## 6 Tabelle ## 7 Bestand an Arbeitslosen ## 8 Kreiszusammenfassung ## 9 Übersicht nach Kreisen ## 10 NA ## 11 Insgesamt ## 12 Rechtskreis ## 13 SGB III ## 14 SGB II ## 15 Geschlecht ``` -- **Alternative:** Schauen Sie sich die Excel-Datei in Excel oder LibreOffice an und entscheiden Sie dann, welches Tabellenblatt Sie einlesen möchten. --- ## Spezifizieren welche Spalten eingelesen werden sollen Welche Information benötigen wir aus der Tabelle - Die Anzahl aller Arbeitslosen pro Gemeinde (d.h. SGB II und III gemeinsam) **aus dem Jahr 2021** - Die Anzahl der Arbeitslosen pro Gemeinde für einen bestimmten Rechtskreis (z.B. nur SGB II) - Die Anzahl der Arbeitslosen pro Gemeinde für einen bestimmten Rechtskreis und ein bestimmtes Alter (z.B. SGB II alle unter 25 Jahre) --- ## Spezifizieren welche Spalten eingelesen werden sollen Welche Information benötigen wir aus der Tabelle - .alert[Die Anzahl aller Arbeitslosen pro Gemeinde (d.h. SGB II und III gemeinsam) **aus dem Jahr 2021**] - Die Anzahl der Arbeitslosen pro Gemeinde für einen bestimmten Rechtskreis (z.B. nur SGB II) - Die Anzahl der Arbeitslosen pro Gemeinde für einen bestimmten Rechtskreis und ein bestimmtes Alter (z.B. SGB II alle unter 25 Jahre) -- .question[Was ist hier eine Beobachtung?] -- Weiterhin benötigen wir noch die "Gemeinde-ID" und den Gemeindenamen. Wie können wir die von uns benötigte Information möglichst einfach extrahieren? -- - Der einfachste Weg: Die ersten acht Zeilen abzuschneiden und die Daten erst ab dort einzulesen. - Anschließend behalten wir nur die ersten 3 Spalten --- <img src="./figs/Alo_Ueberblick.png" width="120%" /> --- count: false .panel1-einlesen_alo-auto[ ```r *alo_skip <- read_xlsx(alo_name, sheet = "Gesamt", skip = 8) ``` ] .panel2-einlesen_alo-auto[ ] --- count: false .panel1-einlesen_alo-auto[ ```r alo_skip <- read_xlsx(alo_name, sheet = "Gesamt", skip = 8) *alo_skip ``` ] .panel2-einlesen_alo-auto[ ``` ## # A tibble: 11,233 × 27 ## ...1 Jahresdurchschnitte ...3 Rechtskreis Insgesam…¹ ...5 ...6 ...7 ## <chr> <chr> <chr> <chr> <chr> <chr> <chr> ## 1 <NA> Jahresdurch-schnitt Jahr… 43831 43862 43891 43922 ## 2 Region 2020 2021 1 2 3 4 ## 3 Deutschla… 2695444.0833333335 2613… 2425523 2395… 2335… 2643… ## 4 01 Schles… 92139.666666666672 8886… 85827 85007 81837 92188 ## 5 01001 Fle… 4721.75 4369… 4421 4393 4286 4897 ## 6 01001000 … 4721.75 4369… 4421 4393 4286 4897 ## 7 01002 Kie… 11776.166666666666 1109… 10791 10733 10522 11589 ## 8 01002000 … 11776.166666666666 1109… 10791 10733 10522 11589 ## 9 01003 Lüb… 9404 9346… 8605 8425 8305 9585 ## 10 01003000 … 9404 9346… 8605 8425 8305 9585 ## # ℹ 11,223 more rows ## # ℹ abbreviated name: ## # ¹`Rechtskreis Insgesamt - Bestand an Arbeitslosen - Gesamt...4` ## # ℹ 20 more variables: ...8 <chr>, ...9 <chr>, ...10 <chr>, ...11 <chr>, ## # ...12 <chr>, ...13 <chr>, ...14 <chr>, ...15 <chr>, ## # `Rechtskreis Insgesamt - Bestand an Arbeitslosen - Gesamt...16` <chr>, ## # ...17 <chr>, ...18 <chr>, ...19 <chr>, ...20 <chr>, ...21 <chr>, … ``` ] --- count: false .panel1-einlesen_alo-auto[ ```r alo_skip <- read_xlsx(alo_name, sheet = "Gesamt", skip = 8) alo_skip %>% * select(c(`...1`, Jahresdurchschnitte, `...3`)) ``` ] .panel2-einlesen_alo-auto[ ``` ## # A tibble: 11,233 × 3 ## ...1 Jahresdurchschnitte ...3 ## <chr> <chr> <chr> ## 1 <NA> Jahresdurch-schnitt Jahresdurch-schnitt ## 2 Region 2020 2021 ## 3 Deutschland 2695444.0833333335 2613489 ## 4 01 Schleswig-Holstein 92139.666666666672 88864.75 ## 5 01001 Flensburg, Stadt 4721.75 4369.166666666667 ## 6 01001000 Flensburg, Stadt 4721.75 4369.166666666667 ## 7 01002 Kiel, Landeshauptstadt 11776.166666666666 11096.833333333334 ## 8 01002000 Kiel, Landeshauptstadt 11776.166666666666 11096.833333333334 ## 9 01003 Lübeck, Hansestadt 9404 9346.9166666666661 ## 10 01003000 Lübeck, Hansestadt 9404 9346.9166666666661 ## # ℹ 11,223 more rows ``` ] --- count: false .panel1-einlesen_alo-auto[ ```r alo_skip <- read_xlsx(alo_name, sheet = "Gesamt", skip = 8) alo_skip %>% select(c(`...1`, Jahresdurchschnitte, `...3`)) %>% * mutate(Regionalschluessel = str_extract(`...1`, "[[:digit:]]+"), * Gemeinde = str_extract(`...1`, "[A-Z].*")) ``` ] .panel2-einlesen_alo-auto[ ``` ## # A tibble: 11,233 × 5 ## ...1 Jahresdurchschnitte ...3 Regionalschluessel Gemeinde ## <chr> <chr> <chr> <chr> <chr> ## 1 <NA> Jahresdurch-schnitt Jahr… <NA> <NA> ## 2 Region 2020 2021 <NA> Region ## 3 Deutschland 2695444.0833333335 2613… <NA> Deutsch… ## 4 01 Schleswig-Holstein 92139.666666666672 8886… 01 Schlesw… ## 5 01001 Flensburg, Stadt 4721.75 4369… 01001 Flensbu… ## 6 01001000 Flensburg, St… 4721.75 4369… 01001000 Flensbu… ## 7 01002 Kiel, Landeshaup… 11776.166666666666 1109… 01002 Kiel, L… ## 8 01002000 Kiel, Landesh… 11776.166666666666 1109… 01002000 Kiel, L… ## 9 01003 Lübeck, Hansesta… 9404 9346… 01003 Lübeck,… ## 10 01003000 Lübeck, Hanse… 9404 9346… 01003000 Lübeck,… ## # ℹ 11,223 more rows ``` ] --- count: false .panel1-einlesen_alo-auto[ ```r alo_skip <- read_xlsx(alo_name, sheet = "Gesamt", skip = 8) alo_skip %>% select(c(`...1`, Jahresdurchschnitte, `...3`)) %>% mutate(Regionalschluessel = str_extract(`...1`, "[[:digit:]]+"), Gemeinde = str_extract(`...1`, "[A-Z].*")) %>% * mutate(alo = as.numeric(`...3`)) ``` ] .panel2-einlesen_alo-auto[ ``` ## # A tibble: 11,233 × 6 ## ...1 Jahresdurchschnitte ...3 Regionalschluessel Gemeinde alo ## <chr> <chr> <chr> <chr> <chr> <dbl> ## 1 <NA> Jahresdurch-schnitt Jahr… <NA> <NA> NA ## 2 Region 2020 2021 <NA> Region 2.02e3 ## 3 Deutschland 2695444.0833333335 2613… <NA> Deutsch… 2.61e6 ## 4 01 Schleswig-H… 92139.666666666672 8886… 01 Schlesw… 8.89e4 ## 5 01001 Flensbur… 4721.75 4369… 01001 Flensbu… 4.37e3 ## 6 01001000 Flens… 4721.75 4369… 01001000 Flensbu… 4.37e3 ## 7 01002 Kiel, La… 11776.166666666666 1109… 01002 Kiel, L… 1.11e4 ## 8 01002000 Kiel,… 11776.166666666666 1109… 01002000 Kiel, L… 1.11e4 ## 9 01003 Lübeck, … 9404 9346… 01003 Lübeck,… 9.35e3 ## 10 01003000 Lübec… 9404 9346… 01003000 Lübeck,… 9.35e3 ## # ℹ 11,223 more rows ``` ] --- count: false .panel1-einlesen_alo-auto[ ```r alo_skip <- read_xlsx(alo_name, sheet = "Gesamt", skip = 8) alo_skip %>% select(c(`...1`, Jahresdurchschnitte, `...3`)) %>% mutate(Regionalschluessel = str_extract(`...1`, "[[:digit:]]+"), Gemeinde = str_extract(`...1`, "[A-Z].*")) %>% mutate(alo = as.numeric(`...3`)) %>% * select(-c(`...1`, Jahresdurchschnitte, `...3`)) ``` ] .panel2-einlesen_alo-auto[ ``` ## # A tibble: 11,233 × 3 ## Regionalschluessel Gemeinde alo ## <chr> <chr> <dbl> ## 1 <NA> <NA> NA ## 2 <NA> Region 2021 ## 3 <NA> Deutschland 2613489 ## 4 01 Schleswig-Holstein 88865. ## 5 01001 Flensburg, Stadt 4369. ## 6 01001000 Flensburg, Stadt 4369. ## 7 01002 Kiel, Landeshauptstadt 11097. ## 8 01002000 Kiel, Landeshauptstadt 11097. ## 9 01003 Lübeck, Hansestadt 9347. ## 10 01003000 Lübeck, Hansestadt 9347. ## # ℹ 11,223 more rows ``` ] --- count: false .panel1-einlesen_alo-auto[ ```r alo_skip <- read_xlsx(alo_name, sheet = "Gesamt", skip = 8) alo_skip %>% select(c(`...1`, Jahresdurchschnitte, `...3`)) %>% mutate(Regionalschluessel = str_extract(`...1`, "[[:digit:]]+"), Gemeinde = str_extract(`...1`, "[A-Z].*")) %>% mutate(alo = as.numeric(`...3`)) %>% select(-c(`...1`, Jahresdurchschnitte, `...3`)) %>% * filter(!is.na(alo)) ``` ] .panel2-einlesen_alo-auto[ ``` ## # A tibble: 11,182 × 3 ## Regionalschluessel Gemeinde alo ## <chr> <chr> <dbl> ## 1 <NA> Region 2021 ## 2 <NA> Deutschland 2613489 ## 3 01 Schleswig-Holstein 88865. ## 4 01001 Flensburg, Stadt 4369. ## 5 01001000 Flensburg, Stadt 4369. ## 6 01002 Kiel, Landeshauptstadt 11097. ## 7 01002000 Kiel, Landeshauptstadt 11097. ## 8 01003 Lübeck, Hansestadt 9347. ## 9 01003000 Lübeck, Hansestadt 9347. ## 10 01004 Neumünster, Stadt 3771. ## # ℹ 11,172 more rows ``` ] --- count: false .panel1-einlesen_alo-auto[ ```r alo_skip <- read_xlsx(alo_name, sheet = "Gesamt", skip = 8) alo_skip %>% select(c(`...1`, Jahresdurchschnitte, `...3`)) %>% mutate(Regionalschluessel = str_extract(`...1`, "[[:digit:]]+"), Gemeinde = str_extract(`...1`, "[A-Z].*")) %>% mutate(alo = as.numeric(`...3`)) %>% select(-c(`...1`, Jahresdurchschnitte, `...3`)) %>% filter(!is.na(alo)) ``` ] .panel2-einlesen_alo-auto[ ``` ## # A tibble: 11,182 × 3 ## Regionalschluessel Gemeinde alo ## <chr> <chr> <dbl> ## 1 <NA> Region 2021 ## 2 <NA> Deutschland 2613489 ## 3 01 Schleswig-Holstein 88865. ## 4 01001 Flensburg, Stadt 4369. ## 5 01001000 Flensburg, Stadt 4369. ## 6 01002 Kiel, Landeshauptstadt 11097. ## 7 01002000 Kiel, Landeshauptstadt 11097. ## 8 01003 Lübeck, Hansestadt 9347. ## 9 01003000 Lübeck, Hansestadt 9347. ## 10 01004 Neumünster, Stadt 3771. ## # ℹ 11,172 more rows ``` ] <style> .panel1-einlesen_alo-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-einlesen_alo-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-einlesen_alo-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> ```r *#Abspeichern als Datensatz data_alo *data_alo <- alo_skip %>% select(c(`...1`, Jahresdurchschnitte, `...3`)) %>% mutate(Regionalschluessel = str_extract(`...1`, "[[:digit:]]+"), Gemeinde = str_extract(`...1`, "[A-Z].*")) %>% mutate(alo = as.numeric(`...3`)) %>% select(-c(`...1`, Jahresdurchschnitte, `...3`)) %>% filter(!is.na(alo)) data_alo <- data_alo[-c(1,2),] ``` --- ## Konsistenzcheck - Machen die Angaben Sinn und sind die Daten in sich konsistent? - Externe Datenquelle suchen und intern auf konsistenz prüfen. - Informationen aggregieren und mit anderen Quellen vergleichen -- - Zunächst: Anzahl an Arbeitslosen für jedes **Bundesland** in 2021. - zweistelligen `Regionalschluessel` - "Buchstaben" für jeden `Regionalschluessel` zählen (`nchar()` (number of characters)) - **Alternative Datenquelle:** [Die Anzahl der Arbeitslosen für das Jahr 2021 unterteilt nach Ländern der Arbeitsagentur](https://statistik.arbeitsagentur.de/Statistikdaten/Detail/202112/iiia4/akt-dat-jz/akt-dat-jz-d-0-202112-xlsx.xlsx) - Wichtig: Tabellenblatt 8 --- count: false .panel1-konsistenz_alo-auto[ ```r *data_alo ``` ] .panel2-konsistenz_alo-auto[ ``` ## # A tibble: 11,180 × 3 ## Regionalschluessel Gemeinde alo ## <chr> <chr> <dbl> ## 1 01 Schleswig-Holstein 88865. ## 2 01001 Flensburg, Stadt 4369. ## 3 01001000 Flensburg, Stadt 4369. ## 4 01002 Kiel, Landeshauptstadt 11097. ## 5 01002000 Kiel, Landeshauptstadt 11097. ## 6 01003 Lübeck, Hansestadt 9347. ## 7 01003000 Lübeck, Hansestadt 9347. ## 8 01004 Neumünster, Stadt 3771. ## 9 01004000 Neumünster, Stadt 3771. ## 10 01051 Dithmarschen 4143. ## # ℹ 11,170 more rows ``` ] --- count: false .panel1-konsistenz_alo-auto[ ```r data_alo %>% * filter(nchar(Regionalschluessel) == 2) ``` ] .panel2-konsistenz_alo-auto[ ``` ## # A tibble: 16 × 3 ## Regionalschluessel Gemeinde alo ## <chr> <chr> <dbl> ## 1 01 Schleswig-Holstein 88865. ## 2 02 Hamburg 80395. ## 3 03 Niedersachsen 243021. ## 4 04 Bremen 39292. ## 5 05 Nordrhein-Westfalen 718220. ## 6 06 Hessen 178086. ## 7 07 Rheinland-Pfalz 112137. ## 8 08 Baden-Württemberg 247774. ## 9 09 Bayern 262186. ## 10 10 Saarland 36156. ## 11 11 Berlin 198401. ## 12 12 Brandenburg 78463. ## 13 13 Mecklenburg-Vorpommern 62410. ## 14 14 Sachsen 124743. ## 15 15 Sachsen-Anhalt 81093. ## 16 16 Thüringen 62249. ``` ] --- count: false .panel1-konsistenz_alo-auto[ ```r data_alo %>% filter(nchar(Regionalschluessel) == 2) %>% * rename(bundesland = Regionalschluessel) ``` ] .panel2-konsistenz_alo-auto[ ``` ## # A tibble: 16 × 3 ## bundesland Gemeinde alo ## <chr> <chr> <dbl> ## 1 01 Schleswig-Holstein 88865. ## 2 02 Hamburg 80395. ## 3 03 Niedersachsen 243021. ## 4 04 Bremen 39292. ## 5 05 Nordrhein-Westfalen 718220. ## 6 06 Hessen 178086. ## 7 07 Rheinland-Pfalz 112137. ## 8 08 Baden-Württemberg 247774. ## 9 09 Bayern 262186. ## 10 10 Saarland 36156. ## 11 11 Berlin 198401. ## 12 12 Brandenburg 78463. ## 13 13 Mecklenburg-Vorpommern 62410. ## 14 14 Sachsen 124743. ## 15 15 Sachsen-Anhalt 81093. ## 16 16 Thüringen 62249. ``` ] <style> .panel1-konsistenz_alo-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-konsistenz_alo-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-konsistenz_alo-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> ```r *# Abspeichern als check_alo_bundesland *check_alo_bundesland <- data_alo %>% filter(nchar(Regionalschluessel) == 2) %>% rename(bundesland = Regionalschluessel) ``` --- .pull-left[ ```r check_alo_bundesland ``` ``` ## # A tibble: 16 × 3 ## bundesland Gemeinde alo ## <chr> <chr> <dbl> ## 1 01 Schleswig-Holstein 88865. ## 2 02 Hamburg 80395. ## 3 03 Niedersachsen 243021. ## 4 04 Bremen 39292. ## 5 05 Nordrhein-Westfalen 718220. ## 6 06 Hessen 178086. ## 7 07 Rheinland-Pfalz 112137. ## 8 08 Baden-Württemberg 247774. ## 9 09 Bayern 262186. ## 10 10 Saarland 36156. ## 11 11 Berlin 198401. ## 12 12 Brandenburg 78463. ## 13 13 Mecklenburg-Vorpommern 62410. ## 14 14 Sachsen 124743. ## 15 15 Sachsen-Anhalt 81093. ## 16 16 Thüringen 62249. ``` ] .pull-right[ ```r include_graphics("./figs/Alo_Laender.png") ``` <img src="./figs/Alo_Laender.png" width="65%" /> ] -- .center[.alert[Beide Datenreihen sind identisch]] --- ### Interne Konsistenz überprüfen .instructions[Berechne: Anzahl an Arbeitslosen für jedes Bundesland als Summe der Arbeitslosen einer Gemeinde.] ```r # Nur Gemeindedaten nutzen, dann auf Bundeslandebende die Summe aus den Gemeindedaten berechnen alo_meta <- data_alo %>% filter(nchar(Regionalschluessel) == 8) %>% mutate(landkreis = str_extract(Regionalschluessel, "^.{5}"), bundesland = str_extract(Regionalschluessel, "^.{2}")) alo_bundesland <- alo_meta %>% group_by(bundesland) %>% summarise(total_alo = sum(alo)) alo_landkreis <- alo_meta %>% group_by(landkreis) %>% summarise(total_alo = sum(alo)) %>% rename(Regionalschluessel = landkreis) ``` --- count: false .panel1-interne_konsistenz1-auto[ ```r *data_alo ``` ] .panel2-interne_konsistenz1-auto[ ``` ## # A tibble: 11,180 × 3 ## Regionalschluessel Gemeinde alo ## <chr> <chr> <dbl> ## 1 01 Schleswig-Holstein 88865. ## 2 01001 Flensburg, Stadt 4369. ## 3 01001000 Flensburg, Stadt 4369. ## 4 01002 Kiel, Landeshauptstadt 11097. ## 5 01002000 Kiel, Landeshauptstadt 11097. ## 6 01003 Lübeck, Hansestadt 9347. ## 7 01003000 Lübeck, Hansestadt 9347. ## 8 01004 Neumünster, Stadt 3771. ## 9 01004000 Neumünster, Stadt 3771. ## 10 01051 Dithmarschen 4143. ## # ℹ 11,170 more rows ``` ] --- count: false .panel1-interne_konsistenz1-auto[ ```r data_alo %>% * filter(nchar(Regionalschluessel) == 8) ``` ] .panel2-interne_konsistenz1-auto[ ``` ## # A tibble: 10,741 × 3 ## Regionalschluessel Gemeinde alo ## <chr> <chr> <dbl> ## 1 01001000 Flensburg, Stadt 4369. ## 2 01002000 Kiel, Landeshauptstadt 11097. ## 3 01003000 Lübeck, Hansestadt 9347. ## 4 01004000 Neumünster, Stadt 3771. ## 5 01051001 Albersdorf 122. ## 6 01051002 Arkebek 5.17 ## 7 01051003 Averlak 8.08 ## 8 01051004 Bargenstedt 11.2 ## 9 01051005 Barkenholm 1.58 ## 10 01051006 Barlt 17.7 ## # ℹ 10,731 more rows ``` ] --- count: false .panel1-interne_konsistenz1-auto[ ```r data_alo %>% filter(nchar(Regionalschluessel) == 8) %>% * mutate(landkreis = str_extract(Regionalschluessel, "^.{5}")) ``` ] .panel2-interne_konsistenz1-auto[ ``` ## # A tibble: 10,741 × 4 ## Regionalschluessel Gemeinde alo landkreis ## <chr> <chr> <dbl> <chr> ## 1 01001000 Flensburg, Stadt 4369. 01001 ## 2 01002000 Kiel, Landeshauptstadt 11097. 01002 ## 3 01003000 Lübeck, Hansestadt 9347. 01003 ## 4 01004000 Neumünster, Stadt 3771. 01004 ## 5 01051001 Albersdorf 122. 01051 ## 6 01051002 Arkebek 5.17 01051 ## 7 01051003 Averlak 8.08 01051 ## 8 01051004 Bargenstedt 11.2 01051 ## 9 01051005 Barkenholm 1.58 01051 ## 10 01051006 Barlt 17.7 01051 ## # ℹ 10,731 more rows ``` ] --- count: false .panel1-interne_konsistenz1-auto[ ```r data_alo %>% filter(nchar(Regionalschluessel) == 8) %>% mutate(landkreis = str_extract(Regionalschluessel, "^.{5}")) %>% * mutate(bundesland = str_extract(Regionalschluessel, "^.{2}")) ``` ] .panel2-interne_konsistenz1-auto[ ``` ## # A tibble: 10,741 × 5 ## Regionalschluessel Gemeinde alo landkreis bundesland ## <chr> <chr> <dbl> <chr> <chr> ## 1 01001000 Flensburg, Stadt 4369. 01001 01 ## 2 01002000 Kiel, Landeshauptstadt 11097. 01002 01 ## 3 01003000 Lübeck, Hansestadt 9347. 01003 01 ## 4 01004000 Neumünster, Stadt 3771. 01004 01 ## 5 01051001 Albersdorf 122. 01051 01 ## 6 01051002 Arkebek 5.17 01051 01 ## 7 01051003 Averlak 8.08 01051 01 ## 8 01051004 Bargenstedt 11.2 01051 01 ## 9 01051005 Barkenholm 1.58 01051 01 ## 10 01051006 Barlt 17.7 01051 01 ## # ℹ 10,731 more rows ``` ] --- count: false .panel1-interne_konsistenz1-auto[ ```r data_alo %>% filter(nchar(Regionalschluessel) == 8) %>% mutate(landkreis = str_extract(Regionalschluessel, "^.{5}")) %>% mutate(bundesland = str_extract(Regionalschluessel, "^.{2}")) -> *alo_meta ``` ] .panel2-interne_konsistenz1-auto[ ] <style> .panel1-interne_konsistenz1-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-interne_konsistenz1-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-interne_konsistenz1-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- count: false .panel1-interne_konsistenz2-auto[ ```r *alo_meta ``` ] .panel2-interne_konsistenz2-auto[ ``` ## # A tibble: 10,741 × 5 ## Regionalschluessel Gemeinde alo landkreis bundesland ## <chr> <chr> <dbl> <chr> <chr> ## 1 01001000 Flensburg, Stadt 4369. 01001 01 ## 2 01002000 Kiel, Landeshauptstadt 11097. 01002 01 ## 3 01003000 Lübeck, Hansestadt 9347. 01003 01 ## 4 01004000 Neumünster, Stadt 3771. 01004 01 ## 5 01051001 Albersdorf 122. 01051 01 ## 6 01051002 Arkebek 5.17 01051 01 ## 7 01051003 Averlak 8.08 01051 01 ## 8 01051004 Bargenstedt 11.2 01051 01 ## 9 01051005 Barkenholm 1.58 01051 01 ## 10 01051006 Barlt 17.7 01051 01 ## # ℹ 10,731 more rows ``` ] --- count: false .panel1-interne_konsistenz2-auto[ ```r alo_meta %>% * group_by(bundesland) ``` ] .panel2-interne_konsistenz2-auto[ ``` ## # A tibble: 10,741 × 5 ## # Groups: bundesland [16] ## Regionalschluessel Gemeinde alo landkreis bundesland ## <chr> <chr> <dbl> <chr> <chr> ## 1 01001000 Flensburg, Stadt 4369. 01001 01 ## 2 01002000 Kiel, Landeshauptstadt 11097. 01002 01 ## 3 01003000 Lübeck, Hansestadt 9347. 01003 01 ## 4 01004000 Neumünster, Stadt 3771. 01004 01 ## 5 01051001 Albersdorf 122. 01051 01 ## 6 01051002 Arkebek 5.17 01051 01 ## 7 01051003 Averlak 8.08 01051 01 ## 8 01051004 Bargenstedt 11.2 01051 01 ## 9 01051005 Barkenholm 1.58 01051 01 ## 10 01051006 Barlt 17.7 01051 01 ## # ℹ 10,731 more rows ``` ] --- count: false .panel1-interne_konsistenz2-auto[ ```r alo_meta %>% group_by(bundesland) %>% * summarise(total_alo = sum(alo)) ``` ] .panel2-interne_konsistenz2-auto[ ``` ## # A tibble: 16 × 2 ## bundesland total_alo ## <chr> <dbl> ## 1 01 88865. ## 2 02 80395. ## 3 03 243021. ## 4 04 39292. ## 5 05 718220. ## 6 06 178086. ## 7 07 112137. ## 8 08 247774. ## 9 09 262186. ## 10 10 36156. ## 11 11 198401. ## 12 12 78463. ## 13 13 62410. ## 14 14 124743. ## 15 15 81093. ## 16 16 62249. ``` ] --- count: false .panel1-interne_konsistenz2-auto[ ```r alo_meta %>% group_by(bundesland) %>% summarise(total_alo = sum(alo)) -> *alo_bundesland ``` ] .panel2-interne_konsistenz2-auto[ ] <style> .panel1-interne_konsistenz2-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-interne_konsistenz2-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-interne_konsistenz2-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- count: false .panel1-interne_konsistenz3-auto[ ```r *alo_meta ``` ] .panel2-interne_konsistenz3-auto[ ``` ## # A tibble: 10,741 × 5 ## Regionalschluessel Gemeinde alo landkreis bundesland ## <chr> <chr> <dbl> <chr> <chr> ## 1 01001000 Flensburg, Stadt 4369. 01001 01 ## 2 01002000 Kiel, Landeshauptstadt 11097. 01002 01 ## 3 01003000 Lübeck, Hansestadt 9347. 01003 01 ## 4 01004000 Neumünster, Stadt 3771. 01004 01 ## 5 01051001 Albersdorf 122. 01051 01 ## 6 01051002 Arkebek 5.17 01051 01 ## 7 01051003 Averlak 8.08 01051 01 ## 8 01051004 Bargenstedt 11.2 01051 01 ## 9 01051005 Barkenholm 1.58 01051 01 ## 10 01051006 Barlt 17.7 01051 01 ## # ℹ 10,731 more rows ``` ] --- count: false .panel1-interne_konsistenz3-auto[ ```r alo_meta %>% * group_by(landkreis) ``` ] .panel2-interne_konsistenz3-auto[ ``` ## # A tibble: 10,741 × 5 ## # Groups: landkreis [400] ## Regionalschluessel Gemeinde alo landkreis bundesland ## <chr> <chr> <dbl> <chr> <chr> ## 1 01001000 Flensburg, Stadt 4369. 01001 01 ## 2 01002000 Kiel, Landeshauptstadt 11097. 01002 01 ## 3 01003000 Lübeck, Hansestadt 9347. 01003 01 ## 4 01004000 Neumünster, Stadt 3771. 01004 01 ## 5 01051001 Albersdorf 122. 01051 01 ## 6 01051002 Arkebek 5.17 01051 01 ## 7 01051003 Averlak 8.08 01051 01 ## 8 01051004 Bargenstedt 11.2 01051 01 ## 9 01051005 Barkenholm 1.58 01051 01 ## 10 01051006 Barlt 17.7 01051 01 ## # ℹ 10,731 more rows ``` ] --- count: false .panel1-interne_konsistenz3-auto[ ```r alo_meta %>% group_by(landkreis) %>% * summarise(total_alo = sum(alo)) ``` ] .panel2-interne_konsistenz3-auto[ ``` ## # A tibble: 400 × 2 ## landkreis total_alo ## <chr> <dbl> ## 1 01001 4369. ## 2 01002 11097. ## 3 01003 9347. ## 4 01004 3771. ## 5 01051 4143. ## 6 01053 5603. ## 7 01054 4699 ## 8 01055 5371 ## 9 01056 9371. ## 10 01057 2854. ## # ℹ 390 more rows ``` ] --- count: false .panel1-interne_konsistenz3-auto[ ```r alo_meta %>% group_by(landkreis) %>% summarise(total_alo = sum(alo)) %>% * rename(Regionalschluessel = landkreis) ``` ] .panel2-interne_konsistenz3-auto[ ``` ## # A tibble: 400 × 2 ## Regionalschluessel total_alo ## <chr> <dbl> ## 1 01001 4369. ## 2 01002 11097. ## 3 01003 9347. ## 4 01004 3771. ## 5 01051 4143. ## 6 01053 5603. ## 7 01054 4699 ## 8 01055 5371 ## 9 01056 9371. ## 10 01057 2854. ## # ℹ 390 more rows ``` ] --- count: false .panel1-interne_konsistenz3-auto[ ```r alo_meta %>% group_by(landkreis) %>% summarise(total_alo = sum(alo)) %>% rename(Regionalschluessel = landkreis) -> *alo_landkreis ``` ] .panel2-interne_konsistenz3-auto[ ] <style> .panel1-interne_konsistenz3-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-interne_konsistenz3-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-interne_konsistenz3-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ### Interne Konsistenz überprüfen Wir wollen nun die zwei Tabellen miteinander verbinden (besserer Überblick) - Datensatz `check_alo_bundeland`: Auf Bundesland aggregierte Zahlen der Arbeitslosigkeit aus den Gemeinden - Datessatz `alo_bundesland`: Die schon von der Arbeitsagentur aggregierte Zahlen in unserem Datensatz --- count: false .panel1-interne_konsistenz4-auto[ ```r *left_join(check_alo_bundesland, alo_bundesland, by = "bundesland") ``` ] .panel2-interne_konsistenz4-auto[ ``` ## # A tibble: 16 × 4 ## bundesland Gemeinde alo total_alo ## <chr> <chr> <dbl> <dbl> ## 1 01 Schleswig-Holstein 88865. 88865. ## 2 02 Hamburg 80395. 80395. ## 3 03 Niedersachsen 243021. 243021. ## 4 04 Bremen 39292. 39292. ## 5 05 Nordrhein-Westfalen 718220. 718220. ## 6 06 Hessen 178086. 178086. ## 7 07 Rheinland-Pfalz 112137. 112137. ## 8 08 Baden-Württemberg 247774. 247774. ## 9 09 Bayern 262186. 262186. ## 10 10 Saarland 36156. 36156. ## 11 11 Berlin 198401. 198401. ## 12 12 Brandenburg 78463. 78463. ## 13 13 Mecklenburg-Vorpommern 62410. 62410. ## 14 14 Sachsen 124743. 124743. ## 15 15 Sachsen-Anhalt 81093. 81093. ## 16 16 Thüringen 62249. 62249. ``` ] --- count: false .panel1-interne_konsistenz4-auto[ ```r left_join(check_alo_bundesland, alo_bundesland, by = "bundesland") -> * check_consitency ``` ] .panel2-interne_konsistenz4-auto[ ] --- count: false .panel1-interne_konsistenz4-auto[ ```r left_join(check_alo_bundesland, alo_bundesland, by = "bundesland") -> check_consitency *check_consitency ``` ] .panel2-interne_konsistenz4-auto[ ``` ## # A tibble: 16 × 4 ## bundesland Gemeinde alo total_alo ## <chr> <chr> <dbl> <dbl> ## 1 01 Schleswig-Holstein 88865. 88865. ## 2 02 Hamburg 80395. 80395. ## 3 03 Niedersachsen 243021. 243021. ## 4 04 Bremen 39292. 39292. ## 5 05 Nordrhein-Westfalen 718220. 718220. ## 6 06 Hessen 178086. 178086. ## 7 07 Rheinland-Pfalz 112137. 112137. ## 8 08 Baden-Württemberg 247774. 247774. ## 9 09 Bayern 262186. 262186. ## 10 10 Saarland 36156. 36156. ## 11 11 Berlin 198401. 198401. ## 12 12 Brandenburg 78463. 78463. ## 13 13 Mecklenburg-Vorpommern 62410. 62410. ## 14 14 Sachsen 124743. 124743. ## 15 15 Sachsen-Anhalt 81093. 81093. ## 16 16 Thüringen 62249. 62249. ``` ] --- count: false .panel1-interne_konsistenz4-auto[ ```r left_join(check_alo_bundesland, alo_bundesland, by = "bundesland") -> check_consitency check_consitency %>% * mutate(diff = alo - total_alo) ``` ] .panel2-interne_konsistenz4-auto[ ``` ## # A tibble: 16 × 5 ## bundesland Gemeinde alo total_alo diff ## <chr> <chr> <dbl> <dbl> <dbl> ## 1 01 Schleswig-Holstein 88865. 88865. 0 ## 2 02 Hamburg 80395. 80395. 0 ## 3 03 Niedersachsen 243021. 243021. 0 ## 4 04 Bremen 39292. 39292. 0 ## 5 05 Nordrhein-Westfalen 718220. 718220. 0 ## 6 06 Hessen 178086. 178086. 0 ## 7 07 Rheinland-Pfalz 112137. 112137. 0 ## 8 08 Baden-Württemberg 247774. 247774. 0 ## 9 09 Bayern 262186. 262186. 0 ## 10 10 Saarland 36156. 36156. 0 ## 11 11 Berlin 198401. 198401. 0 ## 12 12 Brandenburg 78463. 78463. 0 ## 13 13 Mecklenburg-Vorpommern 62410. 62410. 0 ## 14 14 Sachsen 124743. 124743. 0 ## 15 15 Sachsen-Anhalt 81093. 81093. 0 ## 16 16 Thüringen 62249. 62249. 0 ``` ] <style> .panel1-interne_konsistenz4-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-interne_konsistenz4-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-interne_konsistenz4-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> -- .center[.alert[Es bestehen keine Unstimmigkeiten.]] --- class: inverse, middle, center # Pro-Kopf Verschuldung --- ## Pro-Kopf Verschuldung auf Gemeindeebene - Auf Gemeindeebene aus dem Jahr 2021 - Querschnittsdaten - Vom Statistischen Bundesamt direkt als Excel-Tabelle heruntergeladen (✔️) .question[Welche Tabellenblätter sollten wir nutzen?] ```r excel_sheets("../case-study/data/Schulden_2021.xlsx") ``` ``` ## [1] "Titel" "Impressum" "Inhalt" ## [4] "Abkürzungen" "Erläuterungen" "SH" ## [7] "NI" "NW" "HE" ## [10] "RP" "BW" "BY" ## [13] "SL" "BB" "MV" ## [16] "SN" "ST" "TH" ## [19] "Statistische Ämter" ``` --- ## Mehrere Tabellenblätter einlesen - Nicht alle Informationen in **einem Tabellenblatt** enthalten - Viele separate Tabellenblätter - Hier kommt die `for`-Schleife zum Einsatz -- .instructions[Zuerst schauen wir jedoch welche Informationen wir benötigen anhand eines Beispiels:] --- ## Mehrere Tabellenblätter einlesen ```r sh <- read_xlsx("../case-study/data/Schulden_2021.xlsx", sheet = "SH") head(sh,20) ``` ``` ## # A tibble: 20 × 21 ## `Zurück zum Inhalt...1` ...2 ...3 ...4 ...5 ...6 ...7 ...8 ...9 ...10 ## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> ## 1 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> ## 2 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> ## 3 "Tabelle 1: Schulde… <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> ## 4 "nach Höhe der Beteili… <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> ## 5 "Regional-\r\nschlüsse… Geme… Verw… "Ein… Schu… Verä… "Sch… Schu… <NA> <NA> ## 6 <NA> <NA> <NA> <NA> <NA> <NA> <NA> zusa… Verä… Schu… ## 7 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> ## 8 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> ## 9 <NA> <NA> <NA> <NA> EUR % "EUR" <NA> % EUR ## 10 <NA> <NA> <NA> <NA> 1 2 "3" 4 5 6 ## 11 "010010000000" Flen… krei… "899… 4545… 0 "505… 2310… -9.5 4625… ## 12 "010020000000" Kiel… krei… "245… 1039… 6.1 "422… 5534… 6.7 5531… ## 13 "010030000000" Lübe… krei… "215… 1090… 1.2 "507… 4305… -5.9 4256… ## 14 "010040000000" Neum… krei… "796… 4532… 5.2 "568… 1141… 10.6 1029… ## 15 "01051" Krei… Krei… "{13… 4296… -14.8 "322… 1954… -20.7 1952… ## 16 "010510011011" Brun… amts… "123… 5464… 0.5 "443… 2206… 0 1994… ## 17 "010510044044" Heid… amts… "215… 4285… -5.4 "199… 2508… -9.6 2146… ## 18 "010515163" Amts… Amts… "{15… 8503… -4.2 "54.… 8503… -4.2 8302… ## 19 "010515163003" Aver… amts… "554" 1917… 13.6 "346… 1300… 10.1… 5971… ## 20 "010515163010" Bric… amts… "200" 1176… 22 "588… 8898… 17 1865… ## # ℹ 11 more variables: ...11 <chr>, ...12 <chr>, ...13 <chr>, ...14 <chr>, ## # ...15 <chr>, ...16 <chr>, ...17 <chr>, ...18 <chr>, ...19 <chr>, ## # `Zurück zum Inhalt...20` <chr>, ...21 <chr> ``` --- ## Mehrere Tabellenblätter einlesen Wir benötigen: - "Regionalschlüssel" - "Gemeindename" - "Einwohner" - "Schuldes des öffentlichen Bereichs insgesamt" - "Schulden je Einwohner" Variablenbezeichnungen beginnen in Zeile 5, d.h. wir ignorieren die ersten 4 Zeilen beim Einlesen. .questions[Was ist hier eine Beobachtung?] --- ## Mehrere Tabellenblätter einlesen Der Übersicht halber wollen wir noch eine Spalte hinzufügen, welche den Namen des Tabellenblattes enthält, welches wir gerade eingelesen haben. ```r # Einlesen des Tabellenblattes "SH" ohne die ersten 5 Zeilen und nur die Spalten 1-7 schulden_individuell <- read_xlsx("../case-study/data/Schulden_2021.xlsx", sheet = "SH", skip = 5)[1:7] # Umbenennen der ersten 7 Spalten colnames(schulden_individuell) <- c("Regionalschluessel", "Gemeinde", "Verwaltungsform", "Einwohner", "Schulden_gesamt", "Veraenderung_Vorjahr", "Schulden_pro_kopf") # Zusätzliche Spalte hinzufügen mit dem Namen des Tabellenblattes *schulden_individuell$Bundesland <- "SH" ``` --- count: false .panel1-schulden_einlesen-auto[ ```r # Einlesen des Tabellenblattes "SH" ohne die ersten 5 Zeilen und nur die Spalten 1-7 *read_xlsx("../case-study/data/Schulden_2021.xlsx", sheet = "SH", skip = 5)[1:7] ``` ] .panel2-schulden_einlesen-auto[ ``` ## # A tibble: 1,310 × 7 ## `Regional-\r\nschlüssel` `Gemeinde/Gemeindeverband` Verwaltungsform ## <chr> <chr> <chr> ## 1 <NA> <NA> <NA> ## 2 <NA> <NA> <NA> ## 3 <NA> <NA> <NA> ## 4 <NA> <NA> <NA> ## 5 <NA> <NA> <NA> ## 6 010010000000 Flensburg, Stadt kreisfreie Stadt ## 7 010020000000 Kiel, Landeshauptstadt kreisfreie Stadt ## 8 010030000000 Lübeck, Hansestadt kreisfreie Stadt ## 9 010040000000 Neumünster, Stadt kreisfreie Stadt ## 10 01051 Kreisverwaltung Dithmarschen Kreisverwaltung ## # ℹ 1,300 more rows ## # ℹ 4 more variables: `Einwohner/in\r\nam\r\n30.06.2021` <chr>, ## # `Schulden des öffentlichen Bereichs insgesamt` <chr>, ## # `Veränderung zum Vorjahr` <chr>, `Schulden je \r\nEinwohner/in` <chr> ``` ] --- count: false .panel1-schulden_einlesen-auto[ ```r # Einlesen des Tabellenblattes "SH" ohne die ersten 5 Zeilen und nur die Spalten 1-7 read_xlsx("../case-study/data/Schulden_2021.xlsx", sheet = "SH", skip = 5)[1:7] -> * schulden_individuell ``` ] .panel2-schulden_einlesen-auto[ ] --- count: false .panel1-schulden_einlesen-auto[ ```r # Einlesen des Tabellenblattes "SH" ohne die ersten 5 Zeilen und nur die Spalten 1-7 read_xlsx("../case-study/data/Schulden_2021.xlsx", sheet = "SH", skip = 5)[1:7] -> schulden_individuell # Umbenennen der ersten 7 Spalten *colnames(schulden_individuell) <- c("Regionalschluessel", "Gemeinde", * "Verwaltungsform", "Einwohner", "Schulden_gesamt", "Veraenderung_Vorjahr", "Schulden_pro_kopf") ``` ] .panel2-schulden_einlesen-auto[ ] --- count: false .panel1-schulden_einlesen-auto[ ```r # Einlesen des Tabellenblattes "SH" ohne die ersten 5 Zeilen und nur die Spalten 1-7 read_xlsx("../case-study/data/Schulden_2021.xlsx", sheet = "SH", skip = 5)[1:7] -> schulden_individuell # Umbenennen der ersten 7 Spalten colnames(schulden_individuell) <- c("Regionalschluessel", "Gemeinde", "Verwaltungsform", "Einwohner", "Schulden_gesamt", "Veraenderung_Vorjahr", "Schulden_pro_kopf") # Zusätzliche Spalte hinzufügen mit dem Namen des Tabellenblattes *schulden_individuell$Bundesland <- "SH" ``` ] .panel2-schulden_einlesen-auto[ ] --- count: false .panel1-schulden_einlesen-auto[ ```r # Einlesen des Tabellenblattes "SH" ohne die ersten 5 Zeilen und nur die Spalten 1-7 read_xlsx("../case-study/data/Schulden_2021.xlsx", sheet = "SH", skip = 5)[1:7] -> schulden_individuell # Umbenennen der ersten 7 Spalten colnames(schulden_individuell) <- c("Regionalschluessel", "Gemeinde", "Verwaltungsform", "Einwohner", "Schulden_gesamt", "Veraenderung_Vorjahr", "Schulden_pro_kopf") # Zusätzliche Spalte hinzufügen mit dem Namen des Tabellenblattes schulden_individuell$Bundesland <- "SH" *schulden_individuell ``` ] .panel2-schulden_einlesen-auto[ ``` ## # A tibble: 1,310 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <chr> ## 1 <NA> <NA> <NA> <NA> <NA> ## 2 <NA> <NA> <NA> <NA> <NA> ## 3 <NA> <NA> <NA> <NA> <NA> ## 4 <NA> <NA> <NA> <NA> EUR ## 5 <NA> <NA> <NA> <NA> 1 ## 6 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539445.9700… ## 7 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143.430… ## 8 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891.450… ## 9 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674.2999… ## 10 01051 Kreisverwaltung… Kreisverwaltung {133 401} 42967438.62000… ## # ℹ 1,300 more rows ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <chr>, ## # Bundesland <chr> ``` ] <style> .panel1-schulden_einlesen-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-schulden_einlesen-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-schulden_einlesen-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## Mehrere Tabellenblätter einlesen .instructions[Nun können wir genauso bei allen anderen Tabellenblättern vorgehen:] -- ```r # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) sheet_names <- excel_sheets("../case-study/data/Schulden_2021.xlsx") # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) sheet_read <- sheet_names[7:18] *for (i in 1:length(sheet_read)){ tmp <- read_xlsx("../case-study/data/Schulden_2021.xlsx", sheet = sheet_read[i], skip = 5)[1:7] * tmp$Bundesland <- sheet_read[i] colnames(tmp) <- c("Regionalschluessel", "Gemeinde", "Verwaltungsform", "Einwohner", "Schulden_gesamt", "Veraenderung_Vorjahr", "Schulden_pro_kopf", "Bundesland") # Daten aller weiteren Tabellenblätter unter den aktuellen Datensatz anheften schulden_individuell <- bind_rows(schulden_individuell, tmp) } ``` --- ## Mehrere Tabellenblätter einlesen .instructions[Nun können wir genauso bei allen anderen Tabellenblättern vorgehen:] ```r # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) sheet_names <- excel_sheets("../case-study/data/Schulden_2021.xlsx") # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) sheet_read <- sheet_names[7:18] for (i in 1:length(sheet_read)){ tmp <- read_xlsx("../case-study/data/Schulden_2021.xlsx", sheet = sheet_read[i], skip = 5)[1:7] * tmp$Bundesland <- sheet_read[i] colnames(tmp) <- c("Regionalschluessel", "Gemeinde", "Verwaltungsform", "Einwohner", "Schulden_gesamt", "Veraenderung_Vorjahr", "Schulden_pro_kopf", "Bundesland") # Daten aller weiteren Tabellenblätter unter den aktuellen Datensatz anheften schulden_individuell <- bind_rows(schulden_individuell, tmp) } ``` -- Eine zusätzliche Spalte generieren, welche die Information pro Bundesland enthält --- count: false .panel1-for_loop-auto[ ```r *# Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) ``` ] .panel2-for_loop-auto[ ] --- count: false .panel1-for_loop-auto[ ```r # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) *excel_sheets("../case-study/data/Schulden_2021.xlsx") ``` ] .panel2-for_loop-auto[ ``` ## [1] "Titel" "Impressum" "Inhalt" ## [4] "Abkürzungen" "Erläuterungen" "SH" ## [7] "NI" "NW" "HE" ## [10] "RP" "BW" "BY" ## [13] "SL" "BB" "MV" ## [16] "SN" "ST" "TH" ## [19] "Statistische Ämter" ``` ] --- count: false .panel1-for_loop-auto[ ```r # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) excel_sheets("../case-study/data/Schulden_2021.xlsx") -> * sheet_names ``` ] .panel2-for_loop-auto[ ] --- count: false .panel1-for_loop-auto[ ```r # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) excel_sheets("../case-study/data/Schulden_2021.xlsx") -> sheet_names *# Einlesen der Tabellenblätter 7-18 (alle Bundesländer) # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) ``` ] .panel2-for_loop-auto[ ] --- count: false .panel1-for_loop-auto[ ```r # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) excel_sheets("../case-study/data/Schulden_2021.xlsx") -> sheet_names # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) *sheet_names[7:18] ``` ] .panel2-for_loop-auto[ ``` ## [1] "NI" "NW" "HE" "RP" "BW" "BY" "SL" "BB" "MV" "SN" "ST" "TH" ``` ] --- count: false .panel1-for_loop-auto[ ```r # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) excel_sheets("../case-study/data/Schulden_2021.xlsx") -> sheet_names # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) sheet_names[7:18] -> * sheet_read ``` ] .panel2-for_loop-auto[ ] --- count: false .panel1-for_loop-auto[ ```r # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) excel_sheets("../case-study/data/Schulden_2021.xlsx") -> sheet_names # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) sheet_names[7:18] -> sheet_read *length(sheet_read) ``` ] .panel2-for_loop-auto[ ``` ## [1] 12 ``` ] --- count: false .panel1-for_loop-auto[ ```r # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) excel_sheets("../case-study/data/Schulden_2021.xlsx") -> sheet_names # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) sheet_names[7:18] -> sheet_read length(sheet_read) *for (i in 1:length(sheet_read)){ * tmp <- read_xlsx("../case-study/data/Schulden_2021.xlsx", sheet = sheet_read[i], skip = 5)[1:7] * tmp$Bundesland <- sheet_read[i] * colnames(tmp) <- c("Regionalschluessel", "Gemeinde", "Verwaltungsform", * "Einwohner", "Schulden_gesamt", "Veraenderung_Vorjahr", "Schulden_pro_kopf", "Bundesland") # Daten aller weiteren Tabellenblätter unter den aktuellen Datensatz anheften * schulden_individuell <- bind_rows(schulden_individuell, tmp) *} ``` ] .panel2-for_loop-auto[ ``` ## [1] 12 ``` ] --- count: false .panel1-for_loop-auto[ ```r # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) # Daten mit for-Schleife einlesen (Struktur gleich wie im vorherigen Chunk) excel_sheets("../case-study/data/Schulden_2021.xlsx") -> sheet_names # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) # Einlesen der Tabellenblätter 7-18 (alle Bundesländer) sheet_names[7:18] -> sheet_read length(sheet_read) for (i in 1:length(sheet_read)){ tmp <- read_xlsx("../case-study/data/Schulden_2021.xlsx", sheet = sheet_read[i], skip = 5)[1:7] tmp$Bundesland <- sheet_read[i] colnames(tmp) <- c("Regionalschluessel", "Gemeinde", "Verwaltungsform", "Einwohner", "Schulden_gesamt", "Veraenderung_Vorjahr", "Schulden_pro_kopf", "Bundesland") # Daten aller weiteren Tabellenblätter unter den aktuellen Datensatz anheften schulden_individuell <- bind_rows(schulden_individuell, tmp) } *schulden_individuell ``` ] .panel2-for_loop-auto[ ``` ## [1] 12 ``` ``` ## # A tibble: 25,234 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <chr> ## 1 <NA> <NA> <NA> <NA> <NA> ## 2 <NA> <NA> <NA> <NA> <NA> ## 3 <NA> <NA> <NA> <NA> <NA> ## 4 <NA> <NA> <NA> <NA> EUR ## 5 <NA> <NA> <NA> <NA> 1 ## 6 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539445.9700… ## 7 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143.430… ## 8 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891.450… ## 9 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674.2999… ## 10 01051 Kreisverwaltung… Kreisverwaltung {133 401} 42967438.62000… ## # ℹ 25,224 more rows ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <chr>, ## # Bundesland <chr> ``` ] <style> .panel1-for_loop-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-for_loop-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-for_loop-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## Variablen umformen ```r head(schulden_individuell,15) ``` ``` ## # A tibble: 15 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <chr> ## 1 <NA> <NA> <NA> <NA> <NA> ## 2 <NA> <NA> <NA> <NA> <NA> ## 3 <NA> <NA> <NA> <NA> <NA> ## 4 <NA> <NA> <NA> <NA> EUR ## 5 <NA> <NA> <NA> <NA> 1 ## 6 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539445.9700… ## 7 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143.430… ## 8 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891.450… ## 9 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674.2999… ## 10 01051 Kreisverwaltung… Kreisverwaltung {133 401} 42967438.62000… ## 11 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169.33000… ## 12 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854871.67999… ## 13 010515163 Amtsverwaltung … Amtsverwaltung {15 547} 850386.17 ## 14 010515163003 Averlak amtsangehörige… 554 1917334.710000… ## 15 010515163010 Brickeln amtsangehörige… 200 1176540.52 ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <chr>, ## # Bundesland <chr> ``` --- ## Variablen umformen Wir sehen, es gibt immer noch einige Probleme: - Die Werte unserer Variablen stehen nicht direkt unter dem Variablennamen - Dies können wir am einfachsten bereinigen indem wir alle `NA`s im Regionalschlüssel entfernen -- - Die Variablen "Einwohner", "Schulden_gesamt" und "Schulden_pro_Kopf" sind alle als `character` hinterlegt (`<chr>` unter dem Variablennamen in der vorherigen Tabelle) - Beispiel warum Klasse `character` (Zeile 28): Es sind geschweifte Klammern enthalten ```r schulden_individuell[28,] ``` ``` ## # A tibble: 1 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <chr> ## 1 010515163_Summe(Amt) Amt Burg-St. M… Amtsgebiet {15 547} {35 628 306} ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <chr>, ## # Bundesland <chr> ``` -- - Definition einer Variablen `landkreis`: Ersten 5 Zeichen im Regionalschlüssel --- count: false .panel1-schulden_umformen-auto[ ```r # Die Daten wurden noch nicht schön eingelesen, in der Excel Tabelle # waren die Variablennamen über mehrere Reihen gezogen, dies müssen wir noch ausgleichen *schulden_individuell ``` ] .panel2-schulden_umformen-auto[ ``` ## # A tibble: 13,272 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <chr> ## 1 <NA> <NA> <NA> <NA> <NA> ## 2 <NA> <NA> <NA> <NA> <NA> ## 3 <NA> <NA> <NA> <NA> <NA> ## 4 <NA> <NA> <NA> <NA> EUR ## 5 <NA> <NA> <NA> <NA> 1 ## 6 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539445.9700… ## 7 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143.430… ## 8 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891.450… ## 9 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674.2999… ## 10 01051 Kreisverwaltung… Kreisverwaltung {133 401} 42967438.62000… ## # ℹ 13,262 more rows ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <chr>, ## # Bundesland <chr> ``` ] --- count: false .panel1-schulden_umformen-auto[ ```r # Die Daten wurden noch nicht schön eingelesen, in der Excel Tabelle # waren die Variablennamen über mehrere Reihen gezogen, dies müssen wir noch ausgleichen schulden_individuell %>% * filter(!is.na(Regionalschluessel)) ``` ] .panel2-schulden_umformen-auto[ ``` ## # A tibble: 13,155 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <chr> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539445.9700… ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143.430… ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891.450… ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674.2999… ## 5 01051 Kreisverwaltung… Kreisverwaltung {133 401} 42967438.62000… ## 6 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169.33000… ## 7 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854871.67999… ## 8 010515163 Amtsverwaltung … Amtsverwaltung {15 547} 850386.17 ## 9 010515163003 Averlak amtsangehörige… 554 1917334.710000… ## 10 010515163010 Brickeln amtsangehörige… 200 1176540.52 ## # ℹ 13,145 more rows ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <chr>, ## # Bundesland <chr> ``` ] --- count: false .panel1-schulden_umformen-auto[ ```r # Die Daten wurden noch nicht schön eingelesen, in der Excel Tabelle # waren die Variablennamen über mehrere Reihen gezogen, dies müssen wir noch ausgleichen schulden_individuell %>% filter(!is.na(Regionalschluessel)) %>% * mutate(Schulden_gesamt = as.numeric(Schulden_gesamt)) ``` ] .panel2-schulden_umformen-auto[ ``` ## # A tibble: 13,155 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <dbl> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539446. ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143. ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891. ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674. ## 5 01051 Kreisverwaltung… Kreisverwaltung {133 401} 42967439. ## 6 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169. ## 7 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854872. ## 8 010515163 Amtsverwaltung … Amtsverwaltung {15 547} 850386. ## 9 010515163003 Averlak amtsangehörige… 554 1917335. ## 10 010515163010 Brickeln amtsangehörige… 200 1176541. ## # ℹ 13,145 more rows ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <chr>, ## # Bundesland <chr> ``` ] --- count: false .panel1-schulden_umformen-auto[ ```r # Die Daten wurden noch nicht schön eingelesen, in der Excel Tabelle # waren die Variablennamen über mehrere Reihen gezogen, dies müssen wir noch ausgleichen schulden_individuell %>% filter(!is.na(Regionalschluessel)) %>% mutate(Schulden_gesamt = as.numeric(Schulden_gesamt)) %>% * mutate(Einwohner = as.numeric(Einwohner)) ``` ] .panel2-schulden_umformen-auto[ ``` ## # A tibble: 13,155 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <dbl> <dbl> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539446. ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143. ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891. ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674. ## 5 01051 Kreisverwaltung… Kreisverwaltung NA 42967439. ## 6 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169. ## 7 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854872. ## 8 010515163 Amtsverwaltung … Amtsverwaltung NA 850386. ## 9 010515163003 Averlak amtsangehörige… 554 1917335. ## 10 010515163010 Brickeln amtsangehörige… 200 1176541. ## # ℹ 13,145 more rows ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <chr>, ## # Bundesland <chr> ``` ] --- count: false .panel1-schulden_umformen-auto[ ```r # Die Daten wurden noch nicht schön eingelesen, in der Excel Tabelle # waren die Variablennamen über mehrere Reihen gezogen, dies müssen wir noch ausgleichen schulden_individuell %>% filter(!is.na(Regionalschluessel)) %>% mutate(Schulden_gesamt = as.numeric(Schulden_gesamt)) %>% mutate(Einwohner = as.numeric(Einwohner)) %>% * mutate(Schulden_pro_kopf = as.numeric(Schulden_pro_kopf)) ``` ] .panel2-schulden_umformen-auto[ ``` ## # A tibble: 13,155 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <dbl> <dbl> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539446. ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143. ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891. ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674. ## 5 01051 Kreisverwaltung… Kreisverwaltung NA 42967439. ## 6 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169. ## 7 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854872. ## 8 010515163 Amtsverwaltung … Amtsverwaltung NA 850386. ## 9 010515163003 Averlak amtsangehörige… 554 1917335. ## 10 010515163010 Brickeln amtsangehörige… 200 1176541. ## # ℹ 13,145 more rows ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <dbl>, ## # Bundesland <chr> ``` ] --- count: false .panel1-schulden_umformen-auto[ ```r # Die Daten wurden noch nicht schön eingelesen, in der Excel Tabelle # waren die Variablennamen über mehrere Reihen gezogen, dies müssen wir noch ausgleichen schulden_individuell %>% filter(!is.na(Regionalschluessel)) %>% mutate(Schulden_gesamt = as.numeric(Schulden_gesamt)) %>% mutate(Einwohner = as.numeric(Einwohner)) %>% mutate(Schulden_pro_kopf = as.numeric(Schulden_pro_kopf)) %>% * mutate(landkreis = str_extract(Regionalschluessel, "^.{5}")) ``` ] .panel2-schulden_umformen-auto[ ``` ## # A tibble: 13,155 × 9 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <dbl> <dbl> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539446. ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143. ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891. ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674. ## 5 01051 Kreisverwaltung… Kreisverwaltung NA 42967439. ## 6 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169. ## 7 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854872. ## 8 010515163 Amtsverwaltung … Amtsverwaltung NA 850386. ## 9 010515163003 Averlak amtsangehörige… 554 1917335. ## 10 010515163010 Brickeln amtsangehörige… 200 1176541. ## # ℹ 13,145 more rows ## # ℹ 4 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <dbl>, ## # Bundesland <chr>, landkreis <chr> ``` ] --- count: false .panel1-schulden_umformen-auto[ ```r # Die Daten wurden noch nicht schön eingelesen, in der Excel Tabelle # waren die Variablennamen über mehrere Reihen gezogen, dies müssen wir noch ausgleichen schulden_individuell %>% filter(!is.na(Regionalschluessel)) %>% mutate(Schulden_gesamt = as.numeric(Schulden_gesamt)) %>% mutate(Einwohner = as.numeric(Einwohner)) %>% mutate(Schulden_pro_kopf = as.numeric(Schulden_pro_kopf)) %>% mutate(landkreis = str_extract(Regionalschluessel, "^.{5}")) %>% * select(-Veraenderung_Vorjahr) ``` ] .panel2-schulden_umformen-auto[ ``` ## # A tibble: 13,155 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <dbl> <dbl> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539446. ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143. ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891. ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674. ## 5 01051 Kreisverwaltung… Kreisverwaltung NA 42967439. ## 6 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169. ## 7 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854872. ## 8 010515163 Amtsverwaltung … Amtsverwaltung NA 850386. ## 9 010515163003 Averlak amtsangehörige… 554 1917335. ## 10 010515163010 Brickeln amtsangehörige… 200 1176541. ## # ℹ 13,145 more rows ## # ℹ 3 more variables: Schulden_pro_kopf <dbl>, Bundesland <chr>, ## # landkreis <chr> ``` ] --- count: false .panel1-schulden_umformen-auto[ ```r # Die Daten wurden noch nicht schön eingelesen, in der Excel Tabelle # waren die Variablennamen über mehrere Reihen gezogen, dies müssen wir noch ausgleichen schulden_individuell %>% filter(!is.na(Regionalschluessel)) %>% mutate(Schulden_gesamt = as.numeric(Schulden_gesamt)) %>% mutate(Einwohner = as.numeric(Einwohner)) %>% mutate(Schulden_pro_kopf = as.numeric(Schulden_pro_kopf)) %>% mutate(landkreis = str_extract(Regionalschluessel, "^.{5}")) %>% select(-Veraenderung_Vorjahr) %>% #manche Landkreise haben keine Infos zu den Einwohnern, diese entfernen wir * filter( !is.na( Einwohner )) ``` ] .panel2-schulden_umformen-auto[ ``` ## # A tibble: 10,785 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <dbl> <dbl> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539446. ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143. ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891. ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674. ## 5 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169. ## 6 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854872. ## 7 010515163003 Averlak amtsangehörige… 554 1917335. ## 8 010515163010 Brickeln amtsangehörige… 200 1176541. ## 9 010515163012 Buchholz amtsangehörige… 997 1976658. ## 10 010515163016 Burg (Dithmarsc… amtsangehörige… 4166 10359909. ## # ℹ 10,775 more rows ## # ℹ 3 more variables: Schulden_pro_kopf <dbl>, Bundesland <chr>, ## # landkreis <chr> ``` ] --- count: false .panel1-schulden_umformen-auto[ ```r # Die Daten wurden noch nicht schön eingelesen, in der Excel Tabelle # waren die Variablennamen über mehrere Reihen gezogen, dies müssen wir noch ausgleichen schulden_individuell %>% filter(!is.na(Regionalschluessel)) %>% mutate(Schulden_gesamt = as.numeric(Schulden_gesamt)) %>% mutate(Einwohner = as.numeric(Einwohner)) %>% mutate(Schulden_pro_kopf = as.numeric(Schulden_pro_kopf)) %>% mutate(landkreis = str_extract(Regionalschluessel, "^.{5}")) %>% select(-Veraenderung_Vorjahr) %>% #manche Landkreise haben keine Infos zu den Einwohnern, diese entfernen wir filter( !is.na( Einwohner )) -> *schulden_bereinigt ``` ] .panel2-schulden_umformen-auto[ ] --- count: false .panel1-schulden_umformen-auto[ ```r # Die Daten wurden noch nicht schön eingelesen, in der Excel Tabelle # waren die Variablennamen über mehrere Reihen gezogen, dies müssen wir noch ausgleichen schulden_individuell %>% filter(!is.na(Regionalschluessel)) %>% mutate(Schulden_gesamt = as.numeric(Schulden_gesamt)) %>% mutate(Einwohner = as.numeric(Einwohner)) %>% mutate(Schulden_pro_kopf = as.numeric(Schulden_pro_kopf)) %>% mutate(landkreis = str_extract(Regionalschluessel, "^.{5}")) %>% select(-Veraenderung_Vorjahr) %>% #manche Landkreise haben keine Infos zu den Einwohnern, diese entfernen wir filter( !is.na( Einwohner )) -> schulden_bereinigt ``` ] .panel2-schulden_umformen-auto[ ] <style> .panel1-schulden_umformen-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-schulden_umformen-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-schulden_umformen-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- class: middle, inverse, center # Konsistenzcheck zum Schulden-Datensatz --- ## Interne Validität Schulden pro Kopf - `Schulden_pro_Kopf_new` von Hand berechnen - **Beachte:** - Geschweiften Klammern entfernen bei `Schulden_gesamt` (mit `str_remove_all`), als auch die Leerzeichen innerhalb der Zahlen (z.B. 15 653), was wir mit `gsub("[[:space:]]")` erreichen. - Tun wir das nicht, so würden wir wieder `NA`s im Datensatz erhalten - Durch die ifelse Bedingung wird der Befehl `str_remove_all` nur angewendet, wenn tatsächlich geschweifte Klammern vorhanden sind .tiny[ ```r # Erstellen der Vergleichstabelle schulden_consistency <- schulden_individuell %>% filter( !is.na(Einwohner) & !is.na(Regionalschluessel) ) %>% mutate(Schulden_gesamt = ifelse(is.na(as.numeric(Schulden_gesamt))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_gesamt, "[{}]"))), as.numeric(Schulden_gesamt)), Schulden_pro_kopf = ifelse(is.na(as.numeric(Schulden_pro_kopf))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_pro_kopf, "[{}]"))), as.numeric(Schulden_pro_kopf)), Einwohner_num = ifelse(is.na(as.numeric(Einwohner))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Einwohner, "[{}]"))), as.numeric(Einwohner)), Schulden_pro_kopf_new = round(Schulden_gesamt / Einwohner_num,2)) %>% relocate(Regionalschluessel, Einwohner, Einwohner_num, Schulden_pro_kopf, Schulden_pro_kopf_new ) %>% mutate(landkreis = str_extract(Regionalschluessel, "^.{5}"), differenz = Schulden_pro_kopf - Schulden_pro_kopf_new) ``` ] --- count: false .panel1-schulden_konsistenz-auto[ ```r # Erstellen der Vergleichstabelle *schulden_individuell ``` ] .panel2-schulden_konsistenz-auto[ ``` ## # A tibble: 13,272 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <chr> ## 1 <NA> <NA> <NA> <NA> <NA> ## 2 <NA> <NA> <NA> <NA> <NA> ## 3 <NA> <NA> <NA> <NA> <NA> ## 4 <NA> <NA> <NA> <NA> EUR ## 5 <NA> <NA> <NA> <NA> 1 ## 6 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539445.9700… ## 7 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143.430… ## 8 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891.450… ## 9 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674.2999… ## 10 01051 Kreisverwaltung… Kreisverwaltung {133 401} 42967438.62000… ## # ℹ 13,262 more rows ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <chr>, ## # Bundesland <chr> ``` ] --- count: false .panel1-schulden_konsistenz-auto[ ```r # Erstellen der Vergleichstabelle schulden_individuell %>% * filter( !is.na(Einwohner) & !is.na(Regionalschluessel) ) ``` ] .panel2-schulden_konsistenz-auto[ ``` ## # A tibble: 13,114 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <chr> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539445.9700… ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143.430… ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891.450… ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674.2999… ## 5 01051 Kreisverwaltung… Kreisverwaltung {133 401} 42967438.62000… ## 6 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169.33000… ## 7 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854871.67999… ## 8 010515163 Amtsverwaltung … Amtsverwaltung {15 547} 850386.17 ## 9 010515163003 Averlak amtsangehörige… 554 1917334.710000… ## 10 010515163010 Brickeln amtsangehörige… 200 1176540.52 ## # ℹ 13,104 more rows ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <chr>, ## # Bundesland <chr> ``` ] --- count: false .panel1-schulden_konsistenz-auto[ ```r # Erstellen der Vergleichstabelle schulden_individuell %>% filter( !is.na(Einwohner) & !is.na(Regionalschluessel) ) %>% * mutate(Schulden_gesamt = ifelse(is.na(as.numeric(Schulden_gesamt))==TRUE, * as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_gesamt, "[{}]"))), * as.numeric(Schulden_gesamt))) ``` ] .panel2-schulden_konsistenz-auto[ ``` ## # A tibble: 13,114 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <dbl> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539446. ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143. ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891. ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674. ## 5 01051 Kreisverwaltung… Kreisverwaltung {133 401} 42967439. ## 6 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169. ## 7 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854872. ## 8 010515163 Amtsverwaltung … Amtsverwaltung {15 547} 850386. ## 9 010515163003 Averlak amtsangehörige… 554 1917335. ## 10 010515163010 Brickeln amtsangehörige… 200 1176541. ## # ℹ 13,104 more rows ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <chr>, ## # Bundesland <chr> ``` ] --- count: false .panel1-schulden_konsistenz-auto[ ```r # Erstellen der Vergleichstabelle schulden_individuell %>% filter( !is.na(Einwohner) & !is.na(Regionalschluessel) ) %>% mutate(Schulden_gesamt = ifelse(is.na(as.numeric(Schulden_gesamt))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_gesamt, "[{}]"))), as.numeric(Schulden_gesamt))) %>% * mutate(Schulden_pro_kopf = ifelse(is.na(as.numeric(Schulden_pro_kopf))==TRUE, * as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_pro_kopf, "[{}]"))), * as.numeric(Schulden_pro_kopf))) ``` ] .panel2-schulden_konsistenz-auto[ ``` ## # A tibble: 13,114 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <dbl> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539446. ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143. ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891. ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674. ## 5 01051 Kreisverwaltung… Kreisverwaltung {133 401} 42967439. ## 6 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169. ## 7 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854872. ## 8 010515163 Amtsverwaltung … Amtsverwaltung {15 547} 850386. ## 9 010515163003 Averlak amtsangehörige… 554 1917335. ## 10 010515163010 Brickeln amtsangehörige… 200 1176541. ## # ℹ 13,104 more rows ## # ℹ 3 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <dbl>, ## # Bundesland <chr> ``` ] --- count: false .panel1-schulden_konsistenz-auto[ ```r # Erstellen der Vergleichstabelle schulden_individuell %>% filter( !is.na(Einwohner) & !is.na(Regionalschluessel) ) %>% mutate(Schulden_gesamt = ifelse(is.na(as.numeric(Schulden_gesamt))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_gesamt, "[{}]"))), as.numeric(Schulden_gesamt))) %>% mutate(Schulden_pro_kopf = ifelse(is.na(as.numeric(Schulden_pro_kopf))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_pro_kopf, "[{}]"))), as.numeric(Schulden_pro_kopf))) %>% * mutate(Einwohner_num = ifelse(is.na(as.numeric(Einwohner))==TRUE, * as.numeric(gsub("[[:space:]]", "", str_remove_all(Einwohner, "[{}]"))), * as.numeric(Einwohner))) ``` ] .panel2-schulden_konsistenz-auto[ ``` ## # A tibble: 13,114 × 9 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <dbl> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539446. ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143. ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891. ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674. ## 5 01051 Kreisverwaltung… Kreisverwaltung {133 401} 42967439. ## 6 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169. ## 7 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854872. ## 8 010515163 Amtsverwaltung … Amtsverwaltung {15 547} 850386. ## 9 010515163003 Averlak amtsangehörige… 554 1917335. ## 10 010515163010 Brickeln amtsangehörige… 200 1176541. ## # ℹ 13,104 more rows ## # ℹ 4 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <dbl>, ## # Bundesland <chr>, Einwohner_num <dbl> ``` ] --- count: false .panel1-schulden_konsistenz-auto[ ```r # Erstellen der Vergleichstabelle schulden_individuell %>% filter( !is.na(Einwohner) & !is.na(Regionalschluessel) ) %>% mutate(Schulden_gesamt = ifelse(is.na(as.numeric(Schulden_gesamt))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_gesamt, "[{}]"))), as.numeric(Schulden_gesamt))) %>% mutate(Schulden_pro_kopf = ifelse(is.na(as.numeric(Schulden_pro_kopf))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_pro_kopf, "[{}]"))), as.numeric(Schulden_pro_kopf))) %>% mutate(Einwohner_num = ifelse(is.na(as.numeric(Einwohner))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Einwohner, "[{}]"))), as.numeric(Einwohner))) %>% * mutate(Schulden_pro_kopf_new = round(Schulden_gesamt / Einwohner_num,2)) ``` ] .panel2-schulden_konsistenz-auto[ ``` ## # A tibble: 13,114 × 10 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <chr> <dbl> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539446. ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143. ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891. ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674. ## 5 01051 Kreisverwaltung… Kreisverwaltung {133 401} 42967439. ## 6 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169. ## 7 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854872. ## 8 010515163 Amtsverwaltung … Amtsverwaltung {15 547} 850386. ## 9 010515163003 Averlak amtsangehörige… 554 1917335. ## 10 010515163010 Brickeln amtsangehörige… 200 1176541. ## # ℹ 13,104 more rows ## # ℹ 5 more variables: Veraenderung_Vorjahr <chr>, Schulden_pro_kopf <dbl>, ## # Bundesland <chr>, Einwohner_num <dbl>, Schulden_pro_kopf_new <dbl> ``` ] --- count: false .panel1-schulden_konsistenz-auto[ ```r # Erstellen der Vergleichstabelle schulden_individuell %>% filter( !is.na(Einwohner) & !is.na(Regionalschluessel) ) %>% mutate(Schulden_gesamt = ifelse(is.na(as.numeric(Schulden_gesamt))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_gesamt, "[{}]"))), as.numeric(Schulden_gesamt))) %>% mutate(Schulden_pro_kopf = ifelse(is.na(as.numeric(Schulden_pro_kopf))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_pro_kopf, "[{}]"))), as.numeric(Schulden_pro_kopf))) %>% mutate(Einwohner_num = ifelse(is.na(as.numeric(Einwohner))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Einwohner, "[{}]"))), as.numeric(Einwohner))) %>% mutate(Schulden_pro_kopf_new = round(Schulden_gesamt / Einwohner_num,2)) %>% * relocate(Regionalschluessel, Einwohner, Einwohner_num, Schulden_pro_kopf, Schulden_pro_kopf_new ) ``` ] .panel2-schulden_konsistenz-auto[ ``` ## # A tibble: 13,114 × 10 ## Regionalschluessel Einwohner Einwohner_num Schulden_pro_kopf ## <chr> <chr> <dbl> <dbl> ## 1 010010000000 89949 89949 5053. ## 2 010020000000 245841 245841 4227. ## 3 010030000000 215051 215051 5073. ## 4 010040000000 79683 79683 5688. ## 5 01051 {133 401} 133401 322. ## 6 010510011011 12324 12324 4434. ## 7 010510044044 21515 21515 1992. ## 8 010515163 {15 547} 15547 54.7 ## 9 010515163003 554 554 3461. ## 10 010515163010 200 200 5883. ## # ℹ 13,104 more rows ## # ℹ 6 more variables: Schulden_pro_kopf_new <dbl>, Gemeinde <chr>, ## # Verwaltungsform <chr>, Schulden_gesamt <dbl>, Veraenderung_Vorjahr <chr>, ## # Bundesland <chr> ``` ] --- count: false .panel1-schulden_konsistenz-auto[ ```r # Erstellen der Vergleichstabelle schulden_individuell %>% filter( !is.na(Einwohner) & !is.na(Regionalschluessel) ) %>% mutate(Schulden_gesamt = ifelse(is.na(as.numeric(Schulden_gesamt))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_gesamt, "[{}]"))), as.numeric(Schulden_gesamt))) %>% mutate(Schulden_pro_kopf = ifelse(is.na(as.numeric(Schulden_pro_kopf))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_pro_kopf, "[{}]"))), as.numeric(Schulden_pro_kopf))) %>% mutate(Einwohner_num = ifelse(is.na(as.numeric(Einwohner))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Einwohner, "[{}]"))), as.numeric(Einwohner))) %>% mutate(Schulden_pro_kopf_new = round(Schulden_gesamt / Einwohner_num,2)) %>% relocate(Regionalschluessel, Einwohner, Einwohner_num, Schulden_pro_kopf, Schulden_pro_kopf_new ) %>% * mutate(landkreis = str_extract(Regionalschluessel, "^.{5}"), * differenz = Schulden_pro_kopf - Schulden_pro_kopf_new) ``` ] .panel2-schulden_konsistenz-auto[ ``` ## # A tibble: 13,114 × 12 ## Regionalschluessel Einwohner Einwohner_num Schulden_pro_kopf ## <chr> <chr> <dbl> <dbl> ## 1 010010000000 89949 89949 5053. ## 2 010020000000 245841 245841 4227. ## 3 010030000000 215051 215051 5073. ## 4 010040000000 79683 79683 5688. ## 5 01051 {133 401} 133401 322. ## 6 010510011011 12324 12324 4434. ## 7 010510044044 21515 21515 1992. ## 8 010515163 {15 547} 15547 54.7 ## 9 010515163003 554 554 3461. ## 10 010515163010 200 200 5883. ## # ℹ 13,104 more rows ## # ℹ 8 more variables: Schulden_pro_kopf_new <dbl>, Gemeinde <chr>, ## # Verwaltungsform <chr>, Schulden_gesamt <dbl>, Veraenderung_Vorjahr <chr>, ## # Bundesland <chr>, landkreis <chr>, differenz <dbl> ``` ] --- count: false .panel1-schulden_konsistenz-auto[ ```r # Erstellen der Vergleichstabelle schulden_individuell %>% filter( !is.na(Einwohner) & !is.na(Regionalschluessel) ) %>% mutate(Schulden_gesamt = ifelse(is.na(as.numeric(Schulden_gesamt))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_gesamt, "[{}]"))), as.numeric(Schulden_gesamt))) %>% mutate(Schulden_pro_kopf = ifelse(is.na(as.numeric(Schulden_pro_kopf))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Schulden_pro_kopf, "[{}]"))), as.numeric(Schulden_pro_kopf))) %>% mutate(Einwohner_num = ifelse(is.na(as.numeric(Einwohner))==TRUE, as.numeric(gsub("[[:space:]]", "", str_remove_all(Einwohner, "[{}]"))), as.numeric(Einwohner))) %>% mutate(Schulden_pro_kopf_new = round(Schulden_gesamt / Einwohner_num,2)) %>% relocate(Regionalschluessel, Einwohner, Einwohner_num, Schulden_pro_kopf, Schulden_pro_kopf_new ) %>% mutate(landkreis = str_extract(Regionalschluessel, "^.{5}"), differenz = Schulden_pro_kopf - Schulden_pro_kopf_new) -> *schulden_consistency ``` ] .panel2-schulden_konsistenz-auto[ ] <style> .panel1-schulden_konsistenz-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-schulden_konsistenz-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-schulden_konsistenz-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## Interne Validität Schulden pro Kopf ```r range(schulden_consistency$differenz, na.rm=TRUE) ``` ``` ## [1] -0.49 0.50 ``` -- .alert[Die Differenzen liegen zwischen +/- 50 Cent] --- ## Interne Validität Schulden pro Kopf Es gibt keine nicht verfügbaren Werte, was gut ist bzgl. der internen Validität. ```r filter(schulden_consistency, is.na(differenz)) ``` ``` ## # A tibble: 0 × 12 ## # ℹ 12 variables: Regionalschluessel <chr>, Einwohner <chr>, ## # Einwohner_num <dbl>, Schulden_pro_kopf <dbl>, Schulden_pro_kopf_new <dbl>, ## # Gemeinde <chr>, Verwaltungsform <chr>, Schulden_gesamt <dbl>, ## # Veraenderung_Vorjahr <chr>, Bundesland <chr>, landkreis <chr>, ## # differenz <dbl> ``` --- class: center, middle, inverse # Bruttoinlandsprodukt --- ## Informationen bzgl. des Bruttoinlandsprodukts Nach dem Download bei den Statistischen Ämtern des Bundes und der Länder und einer ersten Betrachtung interessieren uns folgende Tabellenblätter: - Betrachten der Daten - Tabellenblatt "1.1" ist für unsere Analyse ausschlaggebend (für das BIP) - Tabellenblatt "3.1" ist für die Anzahl an Erwerbstätigen ausschlaggebend - Tabellenblatt "5" ist für die Anzahl an Einwohnern ausschlaggebend - Die ersten vier Zeilen benötigen wir nicht - Die letzte Zeile enthält eine kurze Beschreibung die wir nicht benötigen - **Lösung:** Behalte alle Zeilen, welche bei der `Lfd. Nr.` numerisch sind - Die folgenden Variablen benötigen wir nicht für unsere Analyse und können entfernt werden: `Lfd. Nr.`, `EU-Code`, `NUTS 1`, `NUTS 2`, `NUTS 3`, `Land`, `Gebietseinheit` --- ## Informationen bzgl. des Bruttoinlandsprodukts ```r # Blatt 1.1 einlesen und die ersten 4 Zeilen skippen bip <- read_xlsx("../case-study/data/BIP_2022.xlsx", sheet="1.1", skip = 4) erwerb <- read_xlsx("../case-study/data/BIP_2022.xlsx", sheet="3.1", skip = 4) einwohner <- read_xlsx("../case-study/data/BIP_2022.xlsx", sheet = "5", skip = 4) ``` --- count: false .panel1-bip_einlesen1-auto[ ```r # Zeile löschen in der die `Lfd. Nr.` nicht nummerisch ist # Zusätzliche Spalten löschen *bip ``` ] .panel2-bip_einlesen1-auto[ ``` ## # A tibble: 448 × 37 ## `Lfd. Nr.` `EU-Code` `Regional-schlüssel` Land `NUTS 1` `NUTS 2` `NUTS 3` ## <chr> <chr> <chr> <chr> <chr> <chr> <chr> ## 1 <NA> <NA> <NA> <NA> <NA> <NA> <NA> ## 2 1 DE1 08 BW 1 <NA> <NA> ## 3 2 DE11 081 BW <NA> 2 <NA> ## 4 3 DE111 08111 BW <NA> <NA> 3 ## 5 4 DE112 08115 BW <NA> <NA> 3 ## 6 5 DE113 08116 BW <NA> <NA> 3 ## 7 6 DE114 08117 BW <NA> <NA> 3 ## 8 7 DE115 08118 BW <NA> <NA> 3 ## 9 8 DE116 08119 BW <NA> <NA> 3 ## 10 9 DE117 08121 BW <NA> <NA> 3 ## # ℹ 438 more rows ## # ℹ 30 more variables: Gebietseinheit <chr>, `1992` <chr>, `1994` <chr>, ## # `1995` <chr>, `1996` <chr>, `1997` <chr>, `1998` <chr>, `1999` <chr>, ## # `2000` <dbl>, `2001` <dbl>, `2002` <dbl>, `2003` <dbl>, `2004` <dbl>, ## # `2005` <dbl>, `2006` <dbl>, `2007` <dbl>, `2008` <dbl>, `2009` <dbl>, ## # `2010` <dbl>, `2011` <dbl>, `2012` <dbl>, `2013` <dbl>, `2014` <dbl>, ## # `2015` <dbl>, `2016` <dbl>, `2017` <dbl>, `2018` <dbl>, `2019` <dbl>, … ``` ] --- count: false .panel1-bip_einlesen1-auto[ ```r # Zeile löschen in der die `Lfd. Nr.` nicht nummerisch ist # Zusätzliche Spalten löschen bip %>% * filter(is.na(as.numeric(`Lfd. Nr.`))==FALSE) ``` ] .panel2-bip_einlesen1-auto[ ``` ## # A tibble: 445 × 37 ## `Lfd. Nr.` `EU-Code` `Regional-schlüssel` Land `NUTS 1` `NUTS 2` `NUTS 3` ## <chr> <chr> <chr> <chr> <chr> <chr> <chr> ## 1 1 DE1 08 BW 1 <NA> <NA> ## 2 2 DE11 081 BW <NA> 2 <NA> ## 3 3 DE111 08111 BW <NA> <NA> 3 ## 4 4 DE112 08115 BW <NA> <NA> 3 ## 5 5 DE113 08116 BW <NA> <NA> 3 ## 6 6 DE114 08117 BW <NA> <NA> 3 ## 7 7 DE115 08118 BW <NA> <NA> 3 ## 8 8 DE116 08119 BW <NA> <NA> 3 ## 9 9 DE117 08121 BW <NA> <NA> 3 ## 10 10 DE118 08125 BW <NA> <NA> 3 ## # ℹ 435 more rows ## # ℹ 30 more variables: Gebietseinheit <chr>, `1992` <chr>, `1994` <chr>, ## # `1995` <chr>, `1996` <chr>, `1997` <chr>, `1998` <chr>, `1999` <chr>, ## # `2000` <dbl>, `2001` <dbl>, `2002` <dbl>, `2003` <dbl>, `2004` <dbl>, ## # `2005` <dbl>, `2006` <dbl>, `2007` <dbl>, `2008` <dbl>, `2009` <dbl>, ## # `2010` <dbl>, `2011` <dbl>, `2012` <dbl>, `2013` <dbl>, `2014` <dbl>, ## # `2015` <dbl>, `2016` <dbl>, `2017` <dbl>, `2018` <dbl>, `2019` <dbl>, … ``` ] --- count: false .panel1-bip_einlesen1-auto[ ```r # Zeile löschen in der die `Lfd. Nr.` nicht nummerisch ist # Zusätzliche Spalten löschen bip %>% filter(is.na(as.numeric(`Lfd. Nr.`))==FALSE) %>% * select(-c(`Lfd. Nr.`, `EU-Code`, `NUTS 1`, `NUTS 2`, `NUTS 3`, Land, Gebietseinheit)) ``` ] .panel2-bip_einlesen1-auto[ ``` ## # A tibble: 445 × 30 ## `Regional-schlüssel` `1992` `1994` `1995` `1996` `1997` `1998` `1999` `2000` ## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> ## 1 08 255866… 26264… 27174… 27677… 28219… 29109… 30072… 3.09e5 ## 2 081 110977… 11160… 11528… 11678… 12086… 12384… 12779… 1.30e5 ## 3 08111 32946.… 31736… 32281… 32802… 34339… 33553… 35048… 3.53e4 ## 4 08115 12090.… 11833… 11937… 12097… 13919… 13679… 14424… 1.39e4 ## 5 08116 12275.… 12482… 12748… 13169… 13284… 13952… 14192… 1.44e4 ## 6 08117 5062.0… 5180.… 5447.… 5643.… 5667.… 5838.… 5920.… 6.00e3 ## 7 08118 11714.… 12163… 12756… 12895… 13143… 13516… 13866… 1.47e4 ## 8 08119 8500.4… 8723.… 9320.… 8780.… 8928.… 9175.… 9707.… 1.04e4 ## 9 08121 4219.2… 4387.… 4522.… 4510.… 4581.… 5645.… 5282.… 5.27e3 ## 10 08125 6073.5… 6126.… 6577.… 6811.… 7019.… 7645.… 7928.… 8.45e3 ## # ℹ 435 more rows ## # ℹ 21 more variables: `2001` <dbl>, `2002` <dbl>, `2003` <dbl>, `2004` <dbl>, ## # `2005` <dbl>, `2006` <dbl>, `2007` <dbl>, `2008` <dbl>, `2009` <dbl>, ## # `2010` <dbl>, `2011` <dbl>, `2012` <dbl>, `2013` <dbl>, `2014` <dbl>, ## # `2015` <dbl>, `2016` <dbl>, `2017` <dbl>, `2018` <dbl>, `2019` <dbl>, ## # `2020` <dbl>, `2021` <dbl> ``` ] --- count: false .panel1-bip_einlesen1-auto[ ```r # Zeile löschen in der die `Lfd. Nr.` nicht nummerisch ist # Zusätzliche Spalten löschen bip %>% filter(is.na(as.numeric(`Lfd. Nr.`))==FALSE) %>% select(-c(`Lfd. Nr.`, `EU-Code`, `NUTS 1`, `NUTS 2`, `NUTS 3`, Land, Gebietseinheit)) %>% * rename(Regionalschluessel = `Regional-schlüssel`) ``` ] .panel2-bip_einlesen1-auto[ ``` ## # A tibble: 445 × 30 ## Regionalschluessel `1992` `1994` `1995` `1996` `1997` `1998` `1999` `2000` ## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> ## 1 08 255866.4… 26264… 27174… 27677… 28219… 29109… 30072… 3.09e5 ## 2 081 110977.0… 11160… 11528… 11678… 12086… 12384… 12779… 1.30e5 ## 3 08111 32946.88… 31736… 32281… 32802… 34339… 33553… 35048… 3.53e4 ## 4 08115 12090.93 11833… 11937… 12097… 13919… 13679… 14424… 1.39e4 ## 5 08116 12275.605 12482… 12748… 13169… 13284… 13952… 14192… 1.44e4 ## 6 08117 5062.037… 5180.… 5447.… 5643.… 5667.… 5838.… 5920.… 6.00e3 ## 7 08118 11714.16 12163… 12756… 12895… 13143… 13516… 13866… 1.47e4 ## 8 08119 8500.405… 8723.… 9320.… 8780.… 8928.… 9175.… 9707.… 1.04e4 ## 9 08121 4219.259 4387.… 4522.… 4510.… 4581.… 5645.… 5282.… 5.27e3 ## 10 08125 6073.524… 6126.… 6577.… 6811.… 7019.… 7645.… 7928.… 8.45e3 ## # ℹ 435 more rows ## # ℹ 21 more variables: `2001` <dbl>, `2002` <dbl>, `2003` <dbl>, `2004` <dbl>, ## # `2005` <dbl>, `2006` <dbl>, `2007` <dbl>, `2008` <dbl>, `2009` <dbl>, ## # `2010` <dbl>, `2011` <dbl>, `2012` <dbl>, `2013` <dbl>, `2014` <dbl>, ## # `2015` <dbl>, `2016` <dbl>, `2017` <dbl>, `2018` <dbl>, `2019` <dbl>, ## # `2020` <dbl>, `2021` <dbl> ``` ] --- count: false .panel1-bip_einlesen1-auto[ ```r # Zeile löschen in der die `Lfd. Nr.` nicht nummerisch ist # Zusätzliche Spalten löschen bip %>% filter(is.na(as.numeric(`Lfd. Nr.`))==FALSE) %>% select(-c(`Lfd. Nr.`, `EU-Code`, `NUTS 1`, `NUTS 2`, `NUTS 3`, Land, Gebietseinheit)) %>% rename(Regionalschluessel = `Regional-schlüssel`) -> *bip_wide ``` ] .panel2-bip_einlesen1-auto[ ] <style> .panel1-bip_einlesen1-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-bip_einlesen1-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-bip_einlesen1-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## Informationen bzgl. des Bruttoinlandsprodukts .question[Was ist hier eine Beobachtung?] -- Entsprechend können wir bei den Erwerbstätigen und den Einwohnern vorgehen: ```r # Zeile löschen in der die `Lfd. Nr.` nicht nummerisch ist # Zusätzliche Spalten löschen erwerb_wide <- erwerb %>% filter(is.na(as.numeric(`Lfd. Nr.`))==FALSE) %>% select(-c(`Lfd. Nr.`, `EU-Code`, `NUTS 1`, `NUTS 2`, `NUTS 3`, Land, Gebietseinheit)) %>% rename(Regionalschluessel = `Regional-schlüssel`) einwohner_wide <- einwohner %>% filter(is.na(as.numeric(`Lfd. Nr.`))==FALSE) %>% select(-c(`Lfd. Nr.`, `EU-Code`, `NUTS 1`, `NUTS 2`, `NUTS 3`, Land, Gebietseinheit)) %>% rename(Regionalschluessel = `Regional-schlüssel`) ``` --- ## Informationen bzgl. des Bruttoinlandsprodukts Datensatz, - ist ein Panel: Mehrere Jahre für mehrere Landkreise in Deutschland vorhanden - ist im `wide` Format -> d.h. die Daten sind nicht `tidy` ```r head(bip_wide, 3) ``` ``` ## # A tibble: 3 × 30 ## Regionalschluessel `1992` `1994` `1995` `1996` `1997` `1998` `1999` `2000` ## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> ## 1 08 255866.41… 26264… 27174… 27677… 28219… 29109… 30072… 3.09e5 ## 2 081 110977.071 11160… 11528… 11678… 12086… 12384… 12779… 1.30e5 ## 3 08111 32946.883… 31736… 32281… 32802… 34339… 33553… 35048… 3.53e4 ## # ℹ 21 more variables: `2001` <dbl>, `2002` <dbl>, `2003` <dbl>, `2004` <dbl>, ## # `2005` <dbl>, `2006` <dbl>, `2007` <dbl>, `2008` <dbl>, `2009` <dbl>, ## # `2010` <dbl>, `2011` <dbl>, `2012` <dbl>, `2013` <dbl>, `2014` <dbl>, ## # `2015` <dbl>, `2016` <dbl>, `2017` <dbl>, `2018` <dbl>, `2019` <dbl>, ## # `2020` <dbl>, `2021` <dbl> ``` -- .question[Was sind die Bedigungen für einen `tidy` Datensatz?] --- ## Daten in das `long`-Format überführen Datensatz ins `long`-Format überführen mit `pivot_longer`: ```r bip_long <- pivot_longer(bip_wide, cols = c("1992":"2021") , names_to = "Jahr", values_to = "BIP") ``` ``` Fehler: Can't combine `1992` <character> and `2000` <double>. ``` --- ## Daten in das `long`-Format überführen BIP sollte normalerweise nummerisch sein: - Klasse `double` sollte korrekt sein - umformatieren der Spalten `1992` - `1999` - mit `across()` kann der `mutate()`-Befehl über mehrere Spalten angewendet werden --- count: false .panel1-double-auto[ ```r *#BIP von 1992 - 1999 umformen (als numerische Variable) von 1992 - 1999 umformen (als numerische Variable) ``` ] .panel2-double-auto[ ] --- count: false .panel1-double-auto[ ```r #BIP von 1992 - 1999 umformen (als numerische Variable) von 1992 - 1999 umformen (als numerische Variable) *bip_wide ``` ] .panel2-double-auto[ ``` ## # A tibble: 445 × 30 ## Regionalschluessel `1992` `1994` `1995` `1996` `1997` `1998` `1999` `2000` ## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> ## 1 08 255866.4… 26264… 27174… 27677… 28219… 29109… 30072… 3.09e5 ## 2 081 110977.0… 11160… 11528… 11678… 12086… 12384… 12779… 1.30e5 ## 3 08111 32946.88… 31736… 32281… 32802… 34339… 33553… 35048… 3.53e4 ## 4 08115 12090.93 11833… 11937… 12097… 13919… 13679… 14424… 1.39e4 ## 5 08116 12275.605 12482… 12748… 13169… 13284… 13952… 14192… 1.44e4 ## 6 08117 5062.037… 5180.… 5447.… 5643.… 5667.… 5838.… 5920.… 6.00e3 ## 7 08118 11714.16 12163… 12756… 12895… 13143… 13516… 13866… 1.47e4 ## 8 08119 8500.405… 8723.… 9320.… 8780.… 8928.… 9175.… 9707.… 1.04e4 ## 9 08121 4219.259 4387.… 4522.… 4510.… 4581.… 5645.… 5282.… 5.27e3 ## 10 08125 6073.524… 6126.… 6577.… 6811.… 7019.… 7645.… 7928.… 8.45e3 ## # ℹ 435 more rows ## # ℹ 21 more variables: `2001` <dbl>, `2002` <dbl>, `2003` <dbl>, `2004` <dbl>, ## # `2005` <dbl>, `2006` <dbl>, `2007` <dbl>, `2008` <dbl>, `2009` <dbl>, ## # `2010` <dbl>, `2011` <dbl>, `2012` <dbl>, `2013` <dbl>, `2014` <dbl>, ## # `2015` <dbl>, `2016` <dbl>, `2017` <dbl>, `2018` <dbl>, `2019` <dbl>, ## # `2020` <dbl>, `2021` <dbl> ``` ] --- count: false .panel1-double-auto[ ```r #BIP von 1992 - 1999 umformen (als numerische Variable) von 1992 - 1999 umformen (als numerische Variable) bip_wide %>% * select(`1992`:`1999`) ``` ] .panel2-double-auto[ ``` ## # A tibble: 445 × 7 ## `1992` `1994` `1995` `1996` `1997` `1998` `1999` ## <chr> <chr> <chr> <chr> <chr> <chr> <chr> ## 1 255866.41899999999 262645.41600000003 271746.699… 27677… 28219… 29109… 30072… ## 2 110977.071 111602.66499999999 115280.807 11678… 12086… 12384… 12779… ## 3 32946.883999999998 31736.567999999999 32281.0040… 32802… 34339… 33553… 35048… ## 4 12090.93 11833.816000000001 11937.788 12097… 13919… 13679… 14424… ## 5 12275.605 12482.948 12748.703 13169… 13284… 13952… 14192… ## 6 5062.0370000000003 5180.0739999999996 5447.49399… 5643.… 5667.… 5838.… 5920.… ## 7 11714.16 12163.822 12756.3989… 12895… 13143… 13516… 13866… ## 8 8500.4050000000007 8723.0990000000002 9320.15600… 8780.… 8928.… 9175.… 9707.… ## 9 4219.259 4387.4809999999998 4522.82399… 4510.… 4581.… 5645.… 5282.… ## 10 6073.5249999999996 6126.3310000000001 6577.05599… 6811.… 7019.… 7645.… 7928.… ## # ℹ 435 more rows ``` ] --- count: false .panel1-double-auto[ ```r #BIP von 1992 - 1999 umformen (als numerische Variable) von 1992 - 1999 umformen (als numerische Variable) bip_wide %>% select(`1992`:`1999`) %>% * mutate(across(is.character, as.double)) ``` ] .panel2-double-auto[ ``` ## # A tibble: 445 × 7 ## `1992` `1994` `1995` `1996` `1997` `1998` `1999` ## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> ## 1 255866. 262645. 271747. 276777. 282190. 291100. 300727. ## 2 110977. 111603. 115281. 116787. 120867. 123842. 127799. ## 3 32947. 31737. 32281. 32803. 34340. 33553. 35048. ## 4 12091. 11834. 11938. 12097. 13919. 13679. 14424. ## 5 12276. 12483. 12749. 13169. 13285. 13952. 14192. ## 6 5062. 5180. 5447. 5643. 5668. 5839. 5920. ## 7 11714. 12164. 12756. 12895. 13144. 13516. 13867. ## 8 8500. 8723. 9320. 8781. 8928. 9176. 9708. ## 9 4219. 4387. 4523. 4511. 4581. 5646. 5282. ## 10 6074. 6126. 6577. 6812. 7020. 7646. 7929. ## # ℹ 435 more rows ``` ] --- count: false .panel1-double-auto[ ```r #BIP von 1992 - 1999 umformen (als numerische Variable) von 1992 - 1999 umformen (als numerische Variable) bip_wide %>% select(`1992`:`1999`) %>% mutate(across(is.character, as.double)) -> *bip_double ``` ] .panel2-double-auto[ ] <style> .panel1-double-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-double-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-double-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- Entsprechend dann bei den Einwohnern und Erwerbstätigen: .question[Es wird eine Warnmeldung ausgegeben das `NA`s bei der Umwandlung erzeugt wurden. Warum?] ```r # Erwerbstätige von 1992 - 1999 umformen (als numerische Variable) erwerb_double <- erwerb_wide %>% select(`1992`:`1999`) %>% mutate(across(is.character, as.double)) ``` ``` ## Warning: There were 7 warnings in `mutate()`. ## The first warning was: ## ℹ In argument: `across(is.character, as.double)`. ## Caused by warning: ## ! NAs durch Umwandlung erzeugt ## ℹ Run `dplyr::last_dplyr_warnings()` to see the 6 remaining warnings. ``` ```r # Einwohner von 1992 - 1999 umformen (als numerische Variable) einwohner_double <- einwohner_wide %>% select(`1992`:`1999`) %>% mutate(across(is.character, as.double)) ``` ``` ## Warning: There were 7 warnings in `mutate()`. ## The first warning was: ## ℹ In argument: `across(is.character, as.double)`. ## Caused by warning: ## ! NAs durch Umwandlung erzeugt ## ℹ Run `dplyr::last_dplyr_warnings()` to see the 6 remaining warnings. ``` --- ## Daten in das `long`-Format überführen Wir überprüfen, welche Spalten die Warnung hervorgerufen haben und wo `NA`s erzeugt wurden ```r bip_wide_test <- bip_wide %>% bind_cols(bip_double) head(filter(bip_wide_test, is.na(`1992...31`))) ``` ``` ## # A tibble: 6 × 37 ## Regionalschluessel `1992...2` `1994...3` `1995...4` `1996...5` `1997...6` ## <chr> <chr> <chr> <chr> <chr> <chr> ## 1 13003 . . . . . ## 2 13004 . . . . . ## 3 13071 . . . . . ## 4 13072 . . . . . ## 5 13073 . . . . . ## 6 13074 . . . . . ## # ℹ 31 more variables: `1998...7` <chr>, `1999...8` <chr>, `2000` <dbl>, ## # `2001` <dbl>, `2002` <dbl>, `2003` <dbl>, `2004` <dbl>, `2005` <dbl>, ## # `2006` <dbl>, `2007` <dbl>, `2008` <dbl>, `2009` <dbl>, `2010` <dbl>, ## # `2011` <dbl>, `2012` <dbl>, `2013` <dbl>, `2014` <dbl>, `2015` <dbl>, ## # `2016` <dbl>, `2017` <dbl>, `2018` <dbl>, `2019` <dbl>, `2020` <dbl>, ## # `2021` <dbl>, `1992...31` <dbl>, `1994...32` <dbl>, `1995...33` <dbl>, ## # `1996...34` <dbl>, `1997...35` <dbl>, `1998...36` <dbl>, … ``` --- Eine Umwandlung zu `NA` geschieht bei den Werten bei denen `-` eingetragen wurde. D.h. für uns ist es ok hier ein `NA` einzutragen. Somit können wir die Umwandlung in die Klasse `double` durchführen: ```r bip_wide <- bip_wide %>% select(-(`1992`:`1999`)) %>% bind_cols(bip_double) erwerb_wide <- erwerb_wide %>% select(-(`1992`:`1999`)) %>% bind_cols(erwerb_double) einwohner_wide <- einwohner_wide %>% select(-(`1992`:`1999`)) %>% bind_cols(einwohner_double) ``` --- ## Daten in das `long`-Format überführen Nun können wir den Datensatz ins `long`-Format transferieren und nach dem Jahr sortieren. - Einwohner und Erwerbstätigen in 1000 Personen angegeben, daher Erwerbstätigen und Einwohner mit 1000 multiplizieren. - BIP ist in 1 Mio. Euro angegeben, daher die Multiplikation mit 1 Mio. --- count: false .panel1-long-auto[ ```r # BIP ins long-Format *pivot_longer(bip_wide, cols = c("2000":"1999") , names_to = "Jahr", values_to = "bip") ``` ] .panel2-long-auto[ ``` ## # A tibble: 12,905 × 3 ## Regionalschluessel Jahr bip ## <chr> <chr> <dbl> ## 1 08 2000 308823. ## 2 08 2001 323078. ## 3 08 2002 325510. ## 4 08 2003 329164. ## 5 08 2004 333276. ## 6 08 2005 335789. ## 7 08 2006 357283. ## 8 08 2007 377021. ## 9 08 2008 381903. ## 10 08 2009 353463. ## # ℹ 12,895 more rows ``` ] --- count: false .panel1-long-auto[ ```r # BIP ins long-Format pivot_longer(bip_wide, cols = c("2000":"1999") , names_to = "Jahr", values_to = "bip") %>% * mutate( Jahr = as.numeric(Jahr), * bip = bip * 1000000) ``` ] .panel2-long-auto[ ``` ## # A tibble: 12,905 × 3 ## Regionalschluessel Jahr bip ## <chr> <dbl> <dbl> ## 1 08 2000 308822815000 ## 2 08 2001 323077717000 ## 3 08 2002 325510403000 ## 4 08 2003 329164078000 ## 5 08 2004 333275845000 ## 6 08 2005 335788716000 ## 7 08 2006 357283378000 ## 8 08 2007 377021382000 ## 9 08 2008 381902739000 ## 10 08 2009 353462984000 ## # ℹ 12,895 more rows ``` ] --- count: false .panel1-long-auto[ ```r # BIP ins long-Format pivot_longer(bip_wide, cols = c("2000":"1999") , names_to = "Jahr", values_to = "bip") %>% mutate( Jahr = as.numeric(Jahr), bip = bip * 1000000) %>% * arrange( Jahr ) ``` ] .panel2-long-auto[ ``` ## # A tibble: 12,905 × 3 ## Regionalschluessel Jahr bip ## <chr> <dbl> <dbl> ## 1 08 1992 255866419000 ## 2 081 1992 110977071000 ## 3 08111 1992 32946884000 ## 4 08115 1992 12090930000 ## 5 08116 1992 12275605000 ## 6 08117 1992 5062037000 ## 7 08118 1992 11714160000 ## 8 08119 1992 8500405000 ## 9 08121 1992 4219259000 ## 10 08125 1992 6073525000 ## # ℹ 12,895 more rows ``` ] --- count: false .panel1-long-auto[ ```r # BIP ins long-Format pivot_longer(bip_wide, cols = c("2000":"1999") , names_to = "Jahr", values_to = "bip") %>% mutate( Jahr = as.numeric(Jahr), bip = bip * 1000000) %>% arrange( Jahr ) -> *bip_long ``` ] .panel2-long-auto[ ] <style> .panel1-long-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-long-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-long-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- Für die Erwerbstätigen und Einwohner entsprechend: ```r # Anzahl der Erwerbstätigen ins long-Format erwerb_long <- pivot_longer(erwerb_wide, cols = c("2000":"1999") , names_to = "Jahr", values_to = "erw") %>% mutate( Jahr = as.numeric(Jahr), erw = erw * 1000) %>% arrange( Jahr ) # Anzahl der Einwohner ins long-Format einwohner_long <- pivot_longer(einwohner_wide, cols = c("2000":"1999") , names_to = "Jahr", values_to = "einwohner") %>% mutate( Jahr = as.numeric(Jahr), einwohner = einwohner * 1000) %>% arrange( Jahr ) ``` --- ## Konsistenzchecks Hier sollten Sie selbst aktiv werden und die Daten auf Konsistenz prüfen: .instructions[Als Konsistenzcheck könnten Sie hier die Anzahl der Einwohner aus den verschiedenen Datensätzen vergleichen.] --- # Kartenmaterial hinzufügen Wir benötigen hier eine Karte von Deutschland mit den einzelnen Verwaltungsgrenzen als SHAPE-File und können diese mittels des `sf`-Pakets einlesen. Das [OpenData Portal des Bundesamts für Kartographie und Geodäsie](https://gdz.bkg.bund.de/index.php/default/open-data/verwaltungsgebiete-1-250-000-ebenen-stand-01-01-vg250-ebenen-01-01.html) stellt die nötigen Informationen kostenlos zur Verfügung. [Die Dokumentation der Daten](https://sg.geodatenzentrum.de/web_public/gdz/dokumentation/deu/vg250.pdf) sollten wir uns immer zuerst anschauen, bevor wir die Datenquelle herunterladen. .center[.alert[Dies gilt nicht nur für die Geodaten, sondern allgemein für alle Datenreihen.]] .instructions[Bitte versuchen Sie selbst die Daten herunterzuladen und anhand des Regionalschlüssels (ARS) mit dem BIP, den Arbeitslosen und den Schulden zusammenzuführen.] --- # Datensätze zusammenführen .instructions[Nun möchten wir die unterschiedlichen Datensätze noch zu einem zusammenfügen!] Zuerst müssen wir folgende Schritte unternehmen: - Informationen zur Verschuldung auf Landkreisebene aggregieren - Daten zum BIP auf das Jahr 2021 einschränken. - Datensätze anhand des Regionalschlüssels miteinander verbinden. Weiterhin können wir die geografischen Daten separat abspeichern und bei Bedarf anhand des Regionalschlüssels zu unserem Datensatz hinzumergen. --- count: false .panel1-kombi1-auto[ ```r # Schulden auf Landkreisebene *schulden_bereinigt ``` ] .panel2-kombi1-auto[ ``` ## # A tibble: 10,785 × 8 ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <dbl> <dbl> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539446. ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143. ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891. ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674. ## 5 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169. ## 6 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854872. ## 7 010515163003 Averlak amtsangehörige… 554 1917335. ## 8 010515163010 Brickeln amtsangehörige… 200 1176541. ## 9 010515163012 Buchholz amtsangehörige… 997 1976658. ## 10 010515163016 Burg (Dithmarsc… amtsangehörige… 4166 10359909. ## # ℹ 10,775 more rows ## # ℹ 3 more variables: Schulden_pro_kopf <dbl>, Bundesland <chr>, ## # landkreis <chr> ``` ] --- count: false .panel1-kombi1-auto[ ```r # Schulden auf Landkreisebene schulden_bereinigt %>% * group_by(landkreis) ``` ] .panel2-kombi1-auto[ ``` ## # A tibble: 10,785 × 8 ## # Groups: landkreis [396] ## Regionalschluessel Gemeinde Verwaltungsform Einwohner Schulden_gesamt ## <chr> <chr> <chr> <dbl> <dbl> ## 1 010010000000 Flensburg, Stadt kreisfreie Sta… 89949 454539446. ## 2 010020000000 Kiel, Landeshau… kreisfreie Sta… 245841 1039095143. ## 3 010030000000 Lübeck, Hansest… kreisfreie Sta… 215051 1090890891. ## 4 010040000000 Neumünster, Sta… kreisfreie Sta… 79683 453215674. ## 5 010510011011 Brunsbüttel, St… amtsfreie Geme… 12324 54641169. ## 6 010510044044 Heide, Stadt amtsfreie Geme… 21515 42854872. ## 7 010515163003 Averlak amtsangehörige… 554 1917335. ## 8 010515163010 Brickeln amtsangehörige… 200 1176541. ## 9 010515163012 Buchholz amtsangehörige… 997 1976658. ## 10 010515163016 Burg (Dithmarsc… amtsangehörige… 4166 10359909. ## # ℹ 10,775 more rows ## # ℹ 3 more variables: Schulden_pro_kopf <dbl>, Bundesland <chr>, ## # landkreis <chr> ``` ] --- count: false .panel1-kombi1-auto[ ```r # Schulden auf Landkreisebene schulden_bereinigt %>% group_by(landkreis) %>% * summarise( Schulden_pro_kopf_lk = sum(Schulden_gesamt)/sum(Einwohner), * Einwohner = sum(Einwohner), * Schulden_gesamt = sum(Schulden_gesamt)) ``` ] .panel2-kombi1-auto[ ``` ## # A tibble: 396 × 4 ## landkreis Schulden_pro_kopf_lk Einwohner Schulden_gesamt ## <chr> <dbl> <dbl> <dbl> ## 1 01001 5053. 89949 454539446. ## 2 01002 4227. 245841 1039095143. ## 3 01003 5073. 215051 1090890891. ## 4 01004 5688. 79683 453215674. ## 5 01051 2826. 133401 376925967. ## 6 01053 1613. 199992 322536846. ## 7 01054 3206. 167710 537632139. ## 8 01055 2405. 202229 486299418. ## 9 01056 2917. 317385 925938817. ## 10 01057 2333. 129640 302408108. ## # ℹ 386 more rows ``` ] --- count: false .panel1-kombi1-auto[ ```r # Schulden auf Landkreisebene schulden_bereinigt %>% group_by(landkreis) %>% summarise( Schulden_pro_kopf_lk = sum(Schulden_gesamt)/sum(Einwohner), Einwohner = sum(Einwohner), Schulden_gesamt = sum(Schulden_gesamt)) %>% * rename(Regionalschluessel = landkreis) ``` ] .panel2-kombi1-auto[ ``` ## # A tibble: 396 × 4 ## Regionalschluessel Schulden_pro_kopf_lk Einwohner Schulden_gesamt ## <chr> <dbl> <dbl> <dbl> ## 1 01001 5053. 89949 454539446. ## 2 01002 4227. 245841 1039095143. ## 3 01003 5073. 215051 1090890891. ## 4 01004 5688. 79683 453215674. ## 5 01051 2826. 133401 376925967. ## 6 01053 1613. 199992 322536846. ## 7 01054 3206. 167710 537632139. ## 8 01055 2405. 202229 486299418. ## 9 01056 2917. 317385 925938817. ## 10 01057 2333. 129640 302408108. ## # ℹ 386 more rows ``` ] --- count: false .panel1-kombi1-auto[ ```r # Schulden auf Landkreisebene schulden_bereinigt %>% group_by(landkreis) %>% summarise( Schulden_pro_kopf_lk = sum(Schulden_gesamt)/sum(Einwohner), Einwohner = sum(Einwohner), Schulden_gesamt = sum(Schulden_gesamt)) %>% rename(Regionalschluessel = landkreis) -> *schulden_kombi ``` ] .panel2-kombi1-auto[ ] <style> .panel1-kombi1-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-kombi1-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-kombi1-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- count: false .panel1-kombi2-auto[ ```r # Anzahl an Erwerbstätigen für das Jahr 2021 *erwerb_long ``` ] .panel2-kombi2-auto[ ``` ## # A tibble: 12,905 × 3 ## Regionalschluessel Jahr erw ## <chr> <dbl> <dbl> ## 1 08 1992 5230587 ## 2 081 1992 2046858 ## 3 08111 1992 486895 ## 4 08115 1992 188312 ## 5 08116 1992 237498 ## 6 08117 1992 118140 ## 7 08118 1992 223059 ## 8 08119 1992 176939 ## 9 08121 1992 94510 ## 10 08125 1992 115906 ## # ℹ 12,895 more rows ``` ] --- count: false .panel1-kombi2-auto[ ```r # Anzahl an Erwerbstätigen für das Jahr 2021 erwerb_long %>% * filter(nchar(Regionalschluessel) == 5 & Jahr == 2021) ``` ] .panel2-kombi2-auto[ ``` ## # A tibble: 399 × 3 ## Regionalschluessel Jahr erw ## <chr> <dbl> <dbl> ## 1 08111 2021 532593 ## 2 08115 2021 226864 ## 3 08116 2021 280672 ## 4 08117 2021 119505 ## 5 08118 2021 268651 ## 6 08119 2021 205809 ## 7 08121 2021 98279 ## 8 08125 2021 180424 ## 9 08126 2021 73805 ## 10 08127 2021 115040 ## # ℹ 389 more rows ``` ] --- count: false .panel1-kombi2-auto[ ```r # Anzahl an Erwerbstätigen für das Jahr 2021 erwerb_long %>% filter(nchar(Regionalschluessel) == 5 & Jahr == 2021) %>% * select(-Jahr) ``` ] .panel2-kombi2-auto[ ``` ## # A tibble: 399 × 2 ## Regionalschluessel erw ## <chr> <dbl> ## 1 08111 532593 ## 2 08115 226864 ## 3 08116 280672 ## 4 08117 119505 ## 5 08118 268651 ## 6 08119 205809 ## 7 08121 98279 ## 8 08125 180424 ## 9 08126 73805 ## 10 08127 115040 ## # ℹ 389 more rows ``` ] --- count: false .panel1-kombi2-auto[ ```r # Anzahl an Erwerbstätigen für das Jahr 2021 erwerb_long %>% filter(nchar(Regionalschluessel) == 5 & Jahr == 2021) %>% select(-Jahr) -> *erwerb_kombi ``` ] .panel2-kombi2-auto[ ] <style> .panel1-kombi2-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-kombi2-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-kombi2-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- count: false .panel1-kombi3-auto[ ```r # Anzahl an Einwohner für das Jahr 2021 *einwohner_long ``` ] .panel2-kombi3-auto[ ``` ## # A tibble: 12,905 × 3 ## Regionalschluessel Jahr einwohner ## <chr> <dbl> <dbl> ## 1 08 1992 10050431 ## 2 081 1992 3771006 ## 3 08111 1992 593628 ## 4 08115 1992 343190 ## 5 08116 1992 487370 ## 6 08117 1992 248688 ## 7 08118 1992 475248 ## 8 08119 1992 389670 ## 9 08121 1992 118566 ## 10 08125 1992 283163 ## # ℹ 12,895 more rows ``` ] --- count: false .panel1-kombi3-auto[ ```r # Anzahl an Einwohner für das Jahr 2021 einwohner_long %>% * filter(nchar(Regionalschluessel) == 5 & Jahr == 2021) ``` ] .panel2-kombi3-auto[ ``` ## # A tibble: 399 × 3 ## Regionalschluessel Jahr einwohner ## <chr> <dbl> <dbl> ## 1 08111 2021 628290 ## 2 08115 2021 393047 ## 3 08116 2021 533503 ## 4 08117 2021 258914 ## 5 08118 2021 544825 ## 6 08119 2021 427301 ## 7 08121 2021 126036 ## 8 08125 2021 347081 ## 9 08126 2021 113042 ## 10 08127 2021 198629 ## # ℹ 389 more rows ``` ] --- count: false .panel1-kombi3-auto[ ```r # Anzahl an Einwohner für das Jahr 2021 einwohner_long %>% filter(nchar(Regionalschluessel) == 5 & Jahr == 2021) %>% * select(-Jahr) ``` ] .panel2-kombi3-auto[ ``` ## # A tibble: 399 × 2 ## Regionalschluessel einwohner ## <chr> <dbl> ## 1 08111 628290 ## 2 08115 393047 ## 3 08116 533503 ## 4 08117 258914 ## 5 08118 544825 ## 6 08119 427301 ## 7 08121 126036 ## 8 08125 347081 ## 9 08126 113042 ## 10 08127 198629 ## # ℹ 389 more rows ``` ] --- count: false .panel1-kombi3-auto[ ```r # Anzahl an Einwohner für das Jahr 2021 einwohner_long %>% filter(nchar(Regionalschluessel) == 5 & Jahr == 2021) %>% select(-Jahr) -> *einwohner_kombi ``` ] .panel2-kombi3-auto[ ] <style> .panel1-kombi3-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-kombi3-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-kombi3-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- count: false .panel1-kombi4-auto[ ```r # Anzahl der Einwohner mit dem BIP verbinden um das BIP pro Kopf berechnen zu können *left_join(bip_long, einwohner_long, by=c("Regionalschluessel", "Jahr")) ``` ] .panel2-kombi4-auto[ ``` ## # A tibble: 12,905 × 4 ## Regionalschluessel Jahr bip einwohner ## <chr> <dbl> <dbl> <dbl> ## 1 08 1992 255866419000 10050431 ## 2 081 1992 110977071000 3771006 ## 3 08111 1992 32946884000 593628 ## 4 08115 1992 12090930000 343190 ## 5 08116 1992 12275605000 487370 ## 6 08117 1992 5062037000 248688 ## 7 08118 1992 11714160000 475248 ## 8 08119 1992 8500405000 389670 ## 9 08121 1992 4219259000 118566 ## 10 08125 1992 6073525000 283163 ## # ℹ 12,895 more rows ``` ] --- count: false .panel1-kombi4-auto[ ```r # Anzahl der Einwohner mit dem BIP verbinden um das BIP pro Kopf berechnen zu können left_join(bip_long, einwohner_long, by=c("Regionalschluessel", "Jahr")) %>% * mutate(bip_pro_kopf = bip / einwohner) ``` ] .panel2-kombi4-auto[ ``` ## # A tibble: 12,905 × 5 ## Regionalschluessel Jahr bip einwohner bip_pro_kopf ## <chr> <dbl> <dbl> <dbl> <dbl> ## 1 08 1992 255866419000 10050431 25458. ## 2 081 1992 110977071000 3771006 29429. ## 3 08111 1992 32946884000 593628 55501. ## 4 08115 1992 12090930000 343190 35231. ## 5 08116 1992 12275605000 487370 25187. ## 6 08117 1992 5062037000 248688 20355. ## 7 08118 1992 11714160000 475248 24649. ## 8 08119 1992 8500405000 389670 21814. ## 9 08121 1992 4219259000 118566 35586. ## 10 08125 1992 6073525000 283163 21449. ## # ℹ 12,895 more rows ``` ] --- count: false .panel1-kombi4-auto[ ```r # Anzahl der Einwohner mit dem BIP verbinden um das BIP pro Kopf berechnen zu können left_join(bip_long, einwohner_long, by=c("Regionalschluessel", "Jahr")) %>% mutate(bip_pro_kopf = bip / einwohner) %>% # BIP auf Landkreisebene * filter(nchar(Regionalschluessel) == 5 & Jahr == 2021) ``` ] .panel2-kombi4-auto[ ``` ## # A tibble: 399 × 5 ## Regionalschluessel Jahr bip einwohner bip_pro_kopf ## <chr> <dbl> <dbl> <dbl> <dbl> ## 1 08111 2021 54983349000 628290 87513. ## 2 08115 2021 26471627000 393047 67350. ## 3 08116 2021 23940184000 533503 44874. ## 4 08117 2021 8665366000 258914 33468. ## 5 08118 2021 24894174000 544825 45692. ## 6 08119 2021 16119439000 427301 37724. ## 7 08121 2021 7598902000 126036 60292. ## 8 08125 2021 21144932000 347081 60922. ## 9 08126 2021 6241990000 113042 55218. ## 10 08127 2021 9549854000 198629 48079. ## # ℹ 389 more rows ``` ] --- count: false .panel1-kombi4-auto[ ```r # Anzahl der Einwohner mit dem BIP verbinden um das BIP pro Kopf berechnen zu können left_join(bip_long, einwohner_long, by=c("Regionalschluessel", "Jahr")) %>% mutate(bip_pro_kopf = bip / einwohner) %>% # BIP auf Landkreisebene filter(nchar(Regionalschluessel) == 5 & Jahr == 2021) %>% * select(-c(Jahr, einwohner)) ``` ] .panel2-kombi4-auto[ ``` ## # A tibble: 399 × 3 ## Regionalschluessel bip bip_pro_kopf ## <chr> <dbl> <dbl> ## 1 08111 54983349000 87513. ## 2 08115 26471627000 67350. ## 3 08116 23940184000 44874. ## 4 08117 8665366000 33468. ## 5 08118 24894174000 45692. ## 6 08119 16119439000 37724. ## 7 08121 7598902000 60292. ## 8 08125 21144932000 60922. ## 9 08126 6241990000 55218. ## 10 08127 9549854000 48079. ## # ℹ 389 more rows ``` ] --- count: false .panel1-kombi4-auto[ ```r # Anzahl der Einwohner mit dem BIP verbinden um das BIP pro Kopf berechnen zu können left_join(bip_long, einwohner_long, by=c("Regionalschluessel", "Jahr")) %>% mutate(bip_pro_kopf = bip / einwohner) %>% # BIP auf Landkreisebene filter(nchar(Regionalschluessel) == 5 & Jahr == 2021) %>% select(-c(Jahr, einwohner)) -> *bip_kombi ``` ] .panel2-kombi4-auto[ ] <style> .panel1-kombi4-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-kombi4-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-kombi4-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- count: false .panel1-kombi5-auto[ ```r # Datensätze zusammenführen # Basisdatensatz -> Arbeitslosenzahlen pro Landkreis # Namen der Bundesländer zumergen *alo_landkreis ``` ] .panel2-kombi5-auto[ ``` ## # A tibble: 400 × 2 ## Regionalschluessel total_alo ## <chr> <dbl> ## 1 01001 4369. ## 2 01002 11097. ## 3 01003 9347. ## 4 01004 3771. ## 5 01051 4143. ## 6 01053 5603. ## 7 01054 4699 ## 8 01055 5371 ## 9 01056 9371. ## 10 01057 2854. ## # ℹ 390 more rows ``` ] --- count: false .panel1-kombi5-auto[ ```r # Datensätze zusammenführen # Basisdatensatz -> Arbeitslosenzahlen pro Landkreis # Namen der Bundesländer zumergen alo_landkreis %>% * mutate(bundesland = str_extract(Regionalschluessel, "^.{2}")) ``` ] .panel2-kombi5-auto[ ``` ## # A tibble: 400 × 3 ## Regionalschluessel total_alo bundesland ## <chr> <dbl> <chr> ## 1 01001 4369. 01 ## 2 01002 11097. 01 ## 3 01003 9347. 01 ## 4 01004 3771. 01 ## 5 01051 4143. 01 ## 6 01053 5603. 01 ## 7 01054 4699 01 ## 8 01055 5371 01 ## 9 01056 9371. 01 ## 10 01057 2854. 01 ## # ℹ 390 more rows ``` ] --- count: false .panel1-kombi5-auto[ ```r # Datensätze zusammenführen # Basisdatensatz -> Arbeitslosenzahlen pro Landkreis # Namen der Bundesländer zumergen alo_landkreis %>% mutate(bundesland = str_extract(Regionalschluessel, "^.{2}")) %>% * left_join(., schulden_kombi, by = "Regionalschluessel") ``` ] .panel2-kombi5-auto[ ``` ## # A tibble: 400 × 6 ## Regionalschluessel total_alo bundesland Schulden_pro_kopf_lk Einwohner ## <chr> <dbl> <chr> <dbl> <dbl> ## 1 01001 4369. 01 5053. 89949 ## 2 01002 11097. 01 4227. 245841 ## 3 01003 9347. 01 5073. 215051 ## 4 01004 3771. 01 5688. 79683 ## 5 01051 4143. 01 2826. 133401 ## 6 01053 5603. 01 1613. 199992 ## 7 01054 4699 01 3206. 167710 ## 8 01055 5371 01 2405. 202229 ## 9 01056 9371. 01 2917. 317385 ## 10 01057 2854. 01 2333. 129640 ## # ℹ 390 more rows ## # ℹ 1 more variable: Schulden_gesamt <dbl> ``` ] --- count: false .panel1-kombi5-auto[ ```r # Datensätze zusammenführen # Basisdatensatz -> Arbeitslosenzahlen pro Landkreis # Namen der Bundesländer zumergen alo_landkreis %>% mutate(bundesland = str_extract(Regionalschluessel, "^.{2}")) %>% left_join(., schulden_kombi, by = "Regionalschluessel") %>% * left_join(., bip_kombi, by = "Regionalschluessel") ``` ] .panel2-kombi5-auto[ ``` ## # A tibble: 400 × 8 ## Regionalschluessel total_alo bundesland Schulden_pro_kopf_lk Einwohner ## <chr> <dbl> <chr> <dbl> <dbl> ## 1 01001 4369. 01 5053. 89949 ## 2 01002 11097. 01 4227. 245841 ## 3 01003 9347. 01 5073. 215051 ## 4 01004 3771. 01 5688. 79683 ## 5 01051 4143. 01 2826. 133401 ## 6 01053 5603. 01 1613. 199992 ## 7 01054 4699 01 3206. 167710 ## 8 01055 5371 01 2405. 202229 ## 9 01056 9371. 01 2917. 317385 ## 10 01057 2854. 01 2333. 129640 ## # ℹ 390 more rows ## # ℹ 3 more variables: Schulden_gesamt <dbl>, bip <dbl>, bip_pro_kopf <dbl> ``` ] --- count: false .panel1-kombi5-auto[ ```r # Datensätze zusammenführen # Basisdatensatz -> Arbeitslosenzahlen pro Landkreis # Namen der Bundesländer zumergen alo_landkreis %>% mutate(bundesland = str_extract(Regionalschluessel, "^.{2}")) %>% left_join(., schulden_kombi, by = "Regionalschluessel") %>% left_join(., bip_kombi, by = "Regionalschluessel") %>% # Zahl der Erwerbstätigen zumergen * left_join(., erwerb_kombi, by = "Regionalschluessel") ``` ] .panel2-kombi5-auto[ ``` ## # A tibble: 400 × 9 ## Regionalschluessel total_alo bundesland Schulden_pro_kopf_lk Einwohner ## <chr> <dbl> <chr> <dbl> <dbl> ## 1 01001 4369. 01 5053. 89949 ## 2 01002 11097. 01 4227. 245841 ## 3 01003 9347. 01 5073. 215051 ## 4 01004 3771. 01 5688. 79683 ## 5 01051 4143. 01 2826. 133401 ## 6 01053 5603. 01 1613. 199992 ## 7 01054 4699 01 3206. 167710 ## 8 01055 5371 01 2405. 202229 ## 9 01056 9371. 01 2917. 317385 ## 10 01057 2854. 01 2333. 129640 ## # ℹ 390 more rows ## # ℹ 4 more variables: Schulden_gesamt <dbl>, bip <dbl>, bip_pro_kopf <dbl>, ## # erw <dbl> ``` ] --- count: false .panel1-kombi5-auto[ ```r # Datensätze zusammenführen # Basisdatensatz -> Arbeitslosenzahlen pro Landkreis # Namen der Bundesländer zumergen alo_landkreis %>% mutate(bundesland = str_extract(Regionalschluessel, "^.{2}")) %>% left_join(., schulden_kombi, by = "Regionalschluessel") %>% left_join(., bip_kombi, by = "Regionalschluessel") %>% # Zahl der Erwerbstätigen zumergen left_join(., erwerb_kombi, by = "Regionalschluessel") -> *gesamtdaten ``` ] .panel2-kombi5-auto[ ] --- count: false .panel1-kombi5-auto[ ```r # Datensätze zusammenführen # Basisdatensatz -> Arbeitslosenzahlen pro Landkreis # Namen der Bundesländer zumergen alo_landkreis %>% mutate(bundesland = str_extract(Regionalschluessel, "^.{2}")) %>% left_join(., schulden_kombi, by = "Regionalschluessel") %>% left_join(., bip_kombi, by = "Regionalschluessel") %>% # Zahl der Erwerbstätigen zumergen left_join(., erwerb_kombi, by = "Regionalschluessel") -> gesamtdaten *#saveRDS(gesamtdaten, "data/gesamtdaten.rds") #saveRDS(gesamtdaten, "data/gesamtdaten.rds") ``` ] .panel2-kombi5-auto[ ] --- count: false .panel1-kombi5-auto[ ```r # Datensätze zusammenführen # Basisdatensatz -> Arbeitslosenzahlen pro Landkreis # Namen der Bundesländer zumergen alo_landkreis %>% mutate(bundesland = str_extract(Regionalschluessel, "^.{2}")) %>% left_join(., schulden_kombi, by = "Regionalschluessel") %>% left_join(., bip_kombi, by = "Regionalschluessel") %>% # Zahl der Erwerbstätigen zumergen left_join(., erwerb_kombi, by = "Regionalschluessel") -> gesamtdaten #saveRDS(gesamtdaten, "data/gesamtdaten.rds") #saveRDS(gesamtdaten, "data/gesamtdaten.rds") *#saveRDS(schulden_bereinigt, "data/schulden_bereinigt.rds") #saveRDS(schulden_bereinigt, "data/schulden_bereinigt.rds") ``` ] .panel2-kombi5-auto[ ] --- count: false .panel1-kombi5-auto[ ```r # Datensätze zusammenführen # Basisdatensatz -> Arbeitslosenzahlen pro Landkreis # Namen der Bundesländer zumergen alo_landkreis %>% mutate(bundesland = str_extract(Regionalschluessel, "^.{2}")) %>% left_join(., schulden_kombi, by = "Regionalschluessel") %>% left_join(., bip_kombi, by = "Regionalschluessel") %>% # Zahl der Erwerbstätigen zumergen left_join(., erwerb_kombi, by = "Regionalschluessel") -> gesamtdaten #saveRDS(gesamtdaten, "data/gesamtdaten.rds") #saveRDS(gesamtdaten, "data/gesamtdaten.rds") #saveRDS(schulden_bereinigt, "data/schulden_bereinigt.rds") #saveRDS(schulden_bereinigt, "data/schulden_bereinigt.rds") *#saveRDS(bip_zeitreihe, "data/bip_zeitreihe.rds") #saveRDS(bip_zeitreihe, "data/bip_zeitreihe.rds") ``` ] .panel2-kombi5-auto[ ] <style> .panel1-kombi5-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-kombi5-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-kombi5-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- # Übungsaufgaben Laden Sie sich das durchschnittliche [Arbeitnehmerentgelt pro Arbeitnehmer und Landkreis](https://www.statistikportal.de/de/veroeffentlichungen/arbeitnehmerentgelt) auf der Seite der Statistischen Ämter des Bundes und der Länder herunter und lesen Sie diesen in R ein. - Finden Sie in dem heruntergeladenen Datensatz heraus, was der Unterschied zwischen _Arbeitnehmerentgelt_ und _Bruttolöhne- und Gehälter_ ist. - Lesen Sie die für Sie relevante Tabelle _Bruttolöhne- und Gehälter_ in R ein. - Bereinigen Sie die Tabelle, d.h. der Datensatz sollte danach `tidy` sein. - Berechnen Sie die Bruttolöhne pro Bundesland mit den Bruttolöhnen der einzelnen Landkreise als Konsistenzcheck.