Erg Klasse
Variabelen kunnen meer dan één klasse hebben. In dat geval geeft class() (docs) een karaktervector terug met een lengte groter dan één.
Je kunt ook meerdere klassen instellen door een karaktervector toe te wijzen aan class(). Zet de klassen van links naar rechts van specifieker naar algemener, omdat je wilt beginnen met het gedrag dat het meest gericht is op je object. Bijvoorbeeld:
x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")
Je kunt de andere klassen controleren met de algemene functie inherits() (docs). Bijvoorbeeld:
inherits(x, "vowels")
Deze oefening maakt deel uit van de cursus
Objectgeoriënteerd programmeren met S3 en R6 in R
Oefeninstructies
De variabele kitty is al voorgedefinieerd in je werkruimte.
- Bekijk
kittydoor simpelweg de naam te typen. - Wijs de klassen
"cat","mammal"en"character"toe aan de variabelekitty. - Controleer dat
kittyde klasse"cat", en"mammal","character"heeft (één voor één, in die volgorde) metinherits(). - Controleer dat
kittynog steeds een karaktervector is metis.character(). - Controleer dat
kittyniet de klasse"dog"heeft.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# View the kitty
kitty
# Assign classes
___ <- ___
# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___
# Is kitty a character vector?
___
# Does kitty inherit from dog?
___