Sehr vornehm
Variablen können mehr als eine Klasse haben. In diesem Fall gibt class() (Docs) einen Character-Vektor mit einer Länge größer als 1 zurück.
Ebenso kannst du mehrere Klassen setzen, indem du class() einen Character-Vektor zuweist. Die Klassen sollten von links nach rechts von spezifisch nach allgemein geordnet sein, da du mit dem Verhalten beginnen willst, das am besten zu deinem Objekt passt. Zum Beispiel:
x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")
Mit der universellen Funktion inherits() (Docs) kannst du auf andere Klassen prüfen. Zum Beispiel:
inherits(x, "vowels")
Diese Übung ist Teil des Kurses
Objektorientierte Programmierung mit S3 und R6 in R
Anleitung zur Übung
Die Variable kitty wurde in deinem Workspace vordefiniert.
- Zeige
kittyan, indem du den Namen tippst. - Weise der Variablen
kittydie Klassen"cat","mammal"und"character"zu. - Prüfe mit
inherits(), dasskittynacheinander (in dieser Reihenfolge) die Klassen"cat","mammal","character"hat. - Prüfe, dass
kittyweiterhin ein Character-Vektor ist, mitis.character(). - Prüfe, dass
kittynicht die Klasse"dog"hat.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# View the kitty
kitty
# Assign classes
___ <- ___
# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___
# Is kitty a character vector?
___
# Does kitty inherit from dog?
___