CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

La variable kitty a été préalablement définie dans votre espace de travail.

  • Affichez kitty en tapant simplement son nom.
  • Attribuez les classes "cat", "mammal" et "character" à la variable kitty.
  • Vérifiez que kitty a les classes "cat", puis "mammal", puis "character" (une à la fois, dans cet ordre) avec inherits().
  • Vérifiez que kitty est toujours un vecteur de caractères avec is.character().
  • Vérifiez que kitty n'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?
___
Modifier et exécuter le code