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:
<- readr::read_delim("data/data_koog_example.csv", delim = ",")
koog_raw 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
Aus dem Zeitstempel date
kö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