EmpezarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

La variable kitty ya está predefinida en tu espacio de trabajo.

  • Visualiza kitty escribiendo su nombre.
  • Asigna las clases "cat", "mammal" y "character" a la variable kitty.
  • Comprueba que kitty tiene clase "cat", y "mammal", "character" (una por una, en ese orden) usando inherits().
  • Comprueba que kitty sigue siendo un vector de caracteres con is.character().
  • Comprueba que kitty no 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?
___
Editar y ejecutar código