Très classe
Les variables peuvent avoir plus d'une classe. Dans ce cas, class() (docs) retourne un vecteur de caractères de longueur supérieure à un.
Vous pouvez aussi attribuer plusieurs classes en affectant un vecteur de caractères à class(). Ordonnez les classes de la plus spécifique à la plus générale de gauche à droite, puisque vous voulez commencer par le comportement le plus ciblé pour votre objet. Par exemple :
x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")
Vous pouvez vérifier les autres classes à l'aide de la fonction polyvalente inherits() (docs). Par exemple :
inherits(x, "vowels")
Cette activité fait partie du cours
Programmation orientée objet avec S3 et R6 en R
Instructions de l’exercice
La variable kitty a été préalablement définie dans votre espace de travail.
- Affichez
kittyen tapant simplement son nom. - Attribuez les classes
"cat","mammal"et"character"à la variablekitty. - Vérifiez que
kittya les classes"cat", puis"mammal", puis"character"(une à la fois, dans cet ordre) avecinherits(). - Vérifiez que
kittyest toujours un vecteur de caractères avecis.character(). - Vérifiez que
kittyn'a pas la classe"dog".
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# View the kitty
kitty
# Assign classes
___ <- ___
# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___
# Is kitty a character vector?
___
# Does kitty inherit from dog?
___