Très classe
Les variables peuvent avoir plusieurs classes. Dans ce cas, class() (docs) renvoie un vecteur de caractères de longueur supérieure à 1.
Vous pouvez également définir plusieurs classes en affectant un vecteur de caractères à class(). Les classes doivent être ordonnées de la plus spécifique à la plus générale de gauche à droite, afin de commencer par le comportement le plus adapté à votre objet. Par exemple :
x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")
Vous pouvez vérifier les autres classes avec la fonction générique inherits() (docs). Par exemple :
inherits(x, "vowels")
Cet exercice fait partie du cours
Programmation orientée objet avec S3 et R6 en R
Instructions
La variable kitty a été pré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 la classe"cat", puis"mammal", puis"character"(une par une, dans cet ordre) en utilisantinherits(). - 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 cet exemple de code.
# View the kitty
kitty
# Assign classes
___ <- ___
# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___
# Is kitty a character vector?
___
# Does kitty inherit from dog?
___