5 > 3[1] TRUE
as.Date("2019-12-24") > as.Date("2019-12-24")[1] FALSE
as.character("Hund") > as.character("Katze")[1] FALSE
as.character("groß") > as.character("klein")[1] FALSE
Die verschiedenen Datenklassen sind für die Arbeit mit essentiell, da sie erlauben ein und denselben Operator/ein und dieselbe Funktion (z.B. das +) auf verschiedene Art und Weise sinnvoll auszuführen: So resultiert etwa 2 + 2 in 4 aber as.Date("2019-12-24") + 2 in "2019-12-26". Diese Polymorphie (»Vielgestaltigkeit«) des + Operators erleichter die Arbeit mit Daten, da so nicht für jede Datenklasse ein anderer Operator für die jeweilige »Addition« verwendet werden muss.
Allerdings sind einige Operatoren für einige Datenklassen nicht sinnvoll und daher nicht in hinterlegt.
>-Operators5 > 3[1] TRUE
as.Date("2019-12-24") > as.Date("2019-12-24")[1] FALSE
as.character("Hund") > as.character("Katze")[1] FALSE
as.character("groß") > as.character("klein")[1] FALSE
Auch der ==-Operator ist polymorph. Welcher der folgenden Syntaxen wird im Output TRUE resultieren (gerne im folgenden Code-Fenster di eiegene Einschätzung überprüfen)?
5 == 32 + 4 == 6"hund" == "Hund"as.Date("2019-12-24") == as.Date("2019-11-24")Nicht alle Funktionen sind polymorph für alle Datenklassen. Prüfen Sie, ob die Polymorphie der mean()-Funktion - die das arithmetische Mittel berechnet - für die Klasse "Date" definiert ist.
Man kann zuerst einen Vektor mit Dates definieren und diesen dann an die mean()-Funktion übergeben.
dates1 <- c(as.Date("2024-02-27"), as.Date("2024-03-02"))
mean(dates1)[1] "2024-02-29"
dates2 <- c(as.Date("2025-02-27"), as.Date("2025-03-02"))
mean(dates2)[1] "2025-02-28"
Die Funktion mean()ist also polymorph für die Klasse "Date" definiert und kennt auch die Schaltjahre.