Muy con clase
Las variables pueden tener más de una clase. En ese caso, class() (docs) devuelve un vector de caracteres de longitud mayor que uno.
Igualmente, puedes establecer varias clases asignando un vector de caracteres a class(). Ordena las clases de la más específica a la más general de izquierda a derecha, ya que quieres empezar por el comportamiento más adaptado a tu objeto. Por ejemplo:
x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")
Puedes comprobar las otras clases con la función genérica inherits() (docs). Por ejemplo:
inherits(x, "vowels")
Este ejercicio forma parte del curso
Programación orientada a objetos con S3 y R6 en R
Instrucciones del ejercicio
La variable kitty ya está predefinida en tu espacio de trabajo.
- Visualiza
kittyescribiendo su nombre. - Asigna las clases
"cat","mammal"y"character"a la variablekitty. - Comprueba que
kittytiene clase"cat", y"mammal","character"(una por una, en ese orden) usandoinherits(). - Comprueba que
kittysigue siendo un vector de caracteres conis.character(). - Comprueba que
kittyno tiene la clase"dog".
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# View the kitty
kitty
# Assign classes
___ <- ___
# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___
# Is kitty a character vector?
___
# Does kitty inherit from dog?
___