Inizia subitoInizia gratis

Molto classosa

Le variabili possono avere più di una classe. In questo caso, class() (docs) restituisce un vettore di caratteri di lunghezza maggiore di uno.

Allo stesso modo, puoi impostare più classi assegnando un vettore di caratteri a class(). Le classi dovrebbero essere ordinate da quella più specifica a quella più generale da sinistra a destra, perché vuoi partire dal comportamento più mirato al tuo oggetto. Per esempio:

x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")

Puoi verificare le altre classi usando la funzione generica inherits() (docs). Per esempio:

inherits(x, "vowels")

Questo esercizio fa parte del corso

Programmazione orientata agli oggetti con S3 e R6 in R

Visualizza corso

Istruzioni dell'esercizio

La variabile kitty è stata predefinita nel tuo workspace.

  • Visualizza kitty digitando il suo nome.
  • Assegna le classi "cat", "mammal" e "character" alla variabile kitty.
  • Verifica che kitty abbia classe "cat", poi "mammal", poi "character" (una alla volta, in quest'ordine) usando inherits().
  • Verifica che kitty sia ancora un vettore di caratteri usando is.character().
  • Verifica che kitty non abbia la classe "dog".

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# View the kitty
kitty

# Assign classes
___ <- ___

# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___

# Is kitty a character vector?
___

# Does kitty inherit from dog?
___
Modifica ed esegui il codice