4.4 Arbeiten mit Zeiten

In der Spalte time stehen die Zeilennummern und unter date finden wir das Datum, allerdings als character hinterlegt. Beim Einlesen der Daten denkt R, dass es sich um Text handelt aber wir wissen es besser. Wir müssen R nun explizit mitteilen wie unser Zeitstempel date codiert ist, nämlich mit %Tag.%Monat.%Jahr %Stunde:%Minute. In R wird ein Datum jedoch mit 2021-11-04 20:39:44 angegeben. Wir tun also folgendes:

koog_raw <- readr::read_delim("data/data_koog_example.csv", delim = ",")
head(koog_raw, n = c(5,3))
## # A tibble: 5 x 3
##    ...1  time date               
##   <dbl> <dbl> <dttm>             
## 1     1     1 2010-04-01 00:00:00
## 2     2     2 2010-04-01 01:00:00
## 3     3     3 2010-04-01 02:00:00
## 4     4     4 2010-04-01 03:00:00
## 5     5     5 2010-04-01 04:00:00

Super…nun haben wir ein sogenanntes POSIXct Objekt. Dies ist eine Datum+Zeitangabe in R und lässt sich mit einfachen Funktionen in eine andere Darstellungsform codieren. Welche Möglichkeiten es gibt Zeiten zu codieren könnt ihr unter ?strptime nachlesen. Die gängisten Kürzel findet ihr aber hier aufgelistet:

  • “%” is used as a separator between dates 🚨
  • %y Year without century (00–99).
  • %Y Year with century.
  • %m Month as decimal number (01–12).
  • %d Day of the month as decimal number (01–31).
  • %H Hours as decimal number (00–23).
  • %M Minute as decimal number (00–59).
  • %T Equivalent to %H:%M:%S.

💡 Mit der Funktion Sys.time() könnt ihr euch das aktuell Datum + Uhrzeit anzeigen lassen

Illustration von Allison Horst

Figure 4.7: Illustration von Allison Horst

Illustration von Allison Horst

Figure 4.8: Illustration von Allison Horst

Aus dem Zeitstempel datekönnen wir mit dem package lubridate:: und den Funktionen ganz einfach aus dem POSIXct Objekt das Jahr, Monat, Tag, Stunde, Minute, … extrahieren:

# Jahr
koog_raw %>%
  select(date) %>%
  mutate(date = year(date)) %>% # Extrahiere das Jahr mit der Funktion `year()`
  head(n = 5)
## # A tibble: 5 x 1
##    date
##   <dbl>
## 1  2010
## 2  2010
## 3  2010
## 4  2010
## 5  2010
# Monat
koog_raw %>%
  select(date) %>%
  mutate(date = month(date)) %>% # Extrahiere das Jahr mit der Funktion `month()`
  head(n = 5)
## # A tibble: 5 x 1
##    date
##   <dbl>
## 1     4
## 2     4
## 3     4
## 4     4
## 5     4