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
Istruzioni dell'esercizio
La variabile kitty è stata predefinita nel tuo workspace.
- Visualizza
kittydigitando il suo nome. - Assegna le classi
"cat","mammal"e"character"alla variabilekitty. - Verifica che
kittyabbia classe"cat", poi"mammal", poi"character"(una alla volta, in quest'ordine) usandoinherits(). - Verifica che
kittysia ancora un vettore di caratteri usandois.character(). - Verifica che
kittynon 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?
___