Flera klasser
Variabler kan tillhöra mer än en klass. I så fall returnerar class() (docs) en teckensträng-vektor med längden större än ett.
På samma sätt kan du tilldela flera klasser genom att tilldela en teckensträng-vektor till class(). Klasserna ska ordnas från mer specifika till mer allmänna från vänster till höger, eftersom du vill börja med det beteende som är mest riktat mot ditt objekt. Till exempel:
x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")
Du kan kontrollera övriga klasser med den generella funktionen inherits() (docs). Till exempel:
inherits(x, "vowels")
Den här övningen är en del av kursen
Objektorienterad programmering med S3 och R6 i R
Övningsinstruktioner
Variabeln kitty är fördefinierad i din arbetsmiljö.
- Visa
kittygenom att skriva dess namn. - Tilldela klasserna
"cat","mammal"och"character"till variabelnkitty. - Kontrollera att
kittyhar klasserna"cat","mammal"och"character"(en i taget, i den ordningen) medinherits(). - Kontrollera att
kittyfortfarande är en teckensträng-vektor medis.character(). - Kontrollera att
kittyinte har klassen"dog".
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# View the kitty
kitty
# Assign classes
___ <- ___
# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___
# Is kitty a character vector?
___
# Does kitty inherit from dog?
___