# Willkommen zu Episode II # Das kennen wir schon: Package "tidyverse" einbinden library(tidyverse) # Als nächstes wollen wir Daten aus einer Datei laden. dwd_gebietsmittel_lufttemperatur_datei <- 'regional_averages_tm_year.txt' # Um sie zu laden, lesen wir die Datei mit einigen Einstellungen ein: dwd_gebietsmittel_lufttemperatur <- read_delim(dwd_gebietsmittel_lufttemperatur_datei, delim = ';', skip = 1, trim_ws = TRUE) # Das funktioniert nicht, weil (Fehlermeldung lesen!) die Datei nicht gefunden wird. # Naive Frage, aber: Hey Computer, von wo aus suchst du eigentlich gerade? # R sucht ausgehend vom aktuellen "working directory". Derzeit lautet das wiefolgt: getwd() # Vollkommen falsch! Wir setzen es über das "Files"-Fenster in RStudio und den "..."-Knopf. # Anschließend kann im Files-Fenster unter "More" das entsprechende Verzeichnis gesetzt werden. # RStudio führt beim Klick darauf übrigens den entsprechenden Code in der Konsole aus: # setwd("...") # Neuer Versuch ... dwd_gebietsmittel_lufttemperatur <- read_delim(dwd_gebietsmittel_lufttemperatur_datei, delim = ';', skip = 1, trim_ws = TRUE) # Das hat, trotz aggressiver Farbgebung, offenbar geklappt ("Fehlermeldung" gelesen?). # Nun können wir uns die Datenstruktur genauer anschauen: str(dwd_gebietsmittel_lufttemperatur) dwd_gebietsmittel_lufttemperatur # Wir wollen den Datensatz kennenlernen. Dazu können wir beispielsweise Jahre zählen: dwd_gebietsmittel_lufttemperatur %>% summarise( minimum = min(Jahr), maximum = max(Jahr), anzahl_einzigartige_jahreszahlen = n_distinct(Jahr) ) # Was wissen wir über Sachsen? dwd_gebietsmittel_lufttemperatur %>% select(Jahr, Sachsen) # ... sortiert nach Temperatur absteigend? dwd_gebietsmittel_lufttemperatur %>% select(Jahr, Sachsen) %>% arrange(-Sachsen) # Welches war das kälteste, welches das wärmste Jahr? dwd_gebietsmittel_lufttemperatur %>% top_n(-1, Sachsen) %>% select(Jahr, Sachsen) dwd_gebietsmittel_lufttemperatur %>% top_n(1, Sachsen) %>% select(Jahr, Sachsen) # Ich bin 1987 geboren. Wie sieht es in diesem Zeitraum aus? dwd_gebietsmittel_lufttemperatur %>% filter(Jahr >= 1987) %>% select(Jahr, Sachsen) %>% arrange(Jahr) dwd_gebietsmittel_lufttemperatur %>% filter(Jahr >= 1987) %>% top_n(5, Sachsen) # Wir können Tabellen mit View auch anzeigen. dwd_gebietsmittel_lufttemperatur %>% filter(Jahr >= 1987) %>% select(Jahr, Bayern, `Brandenburg/Berlin`, Sachsen) %>% arrange(Jahr) %>% View() # Okay, Zeit, Visualisierungen sprechen zu lassen. # Welches sind denn die heißesten Jahre für Sachsen? dwd_gebietsmittel_lufttemperatur %>% ggplot(aes(x = Jahr, y = Sachsen)) + geom_point() # Nicht so wirklich hilfreich. Besser mit Balken? dwd_gebietsmittel_lufttemperatur %>% ggplot(aes(x = Jahr, y = Sachsen)) + geom_col() # Geht so. Vielleicht mit Linie und Punkten? dwd_gebietsmittel_lufttemperatur %>% ggplot(aes(x = Jahr, y = Sachsen)) + geom_line() + geom_point() # Besser. Aber das ganze Ding ist noch nicht sooo schön. dwd_gebietsmittel_lufttemperatur %>% ggplot(aes(x = Jahr, y = Sachsen)) + geom_line() + geom_point() + theme_classic() # Noch etwas besser. # Können wir die Achsen besser beschriften? # Ja, aber dazu müssen wir erst etwas mehr über unsere Datenbeschaffenheit wissen. # Sie erinnern sich an STRucture? str(dwd_gebietsmittel_lufttemperatur) # Der Einfachheit halber: Man kann sich die STRucture auch für einzelne Spalten ausgeben lassen. # Auf Spalten kann man mit "$" zugreifen. str(dwd_gebietsmittel_lufttemperatur$Sachsen) # Okay, also die "Sachsen"-Spalte enthält 139 Komma-Zahlen. # Was ist mit dem Jahr? str(dwd_gebietsmittel_lufttemperatur$Jahr) # 139 Ganzzahlen. Alles klar, zurück zur Visualisierung. # X- und Y-Achsen ("scale") lassen sich einzeln als fortlaufend numerisch ("continuous") konfigurieren. # Für die X-Achse legen wir eine Überschrift und die Anzahl der beschrifteten Jahre (139) fest. # Für die Y-Achse legen wir auch eine Überschrift und, als Vektor, die beschrifteten Grad-Zahlen fest. dwd_gebietsmittel_lufttemperatur %>% ggplot(aes(x = Jahr, y = Sachsen)) + geom_line() + geom_point() + theme_classic() + scale_x_continuous(name = 'Jahr', n.breaks = 139) + scale_y_continuous(name = 'Jahresmittel Lufttemperatur [Grad Celsius]', breaks = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)) # Gut, wir lernen ... # ... und beschriften nur noch etwa ein Fünftel der Jahreszahlen (30) # ... und legen für die Y-Achse noch fest, dass sie auch wirklich von 0-12 alles anzeigt dwd_gebietsmittel_lufttemperatur %>% ggplot(aes(x = Jahr, y = Sachsen)) + geom_line() + geom_point() + theme_classic() + scale_x_continuous(name = 'Jahr', n.breaks = 30) + scale_y_continuous(name = 'Jahresmittel Lufttemperatur [Grad Celsius]', breaks = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), limits = c(0, 12)) # Wir können die Jahreszahlen auch schräg stellen. # Und eine Überschrift über alles setzen. # Und Farbe in die Linie reinbringen. dwd_gebietsmittel_lufttemperatur %>% ggplot(aes(x = Jahr, y = Sachsen)) + geom_line(color = 'red') + geom_point(color = 'darkred') + theme_classic() + scale_x_continuous(name = 'Jahr', n.breaks = 30) + scale_y_continuous(name = 'Jahresmittel [Grad Celsius]', breaks = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), limits = c(0, 12)) + ggtitle(label = 'Lufttemperatur in Sachsen', subtitle = 'Daten vom Deutschen Wetterdienst') + theme(axis.text.x = element_text(angle = 45, hjust = 1))