Kom igångKom igång gratis

Flera klasser

Variabler kan tillhöra mer än en klass. I så fall returnerar class() (docs) en teckensträng-vektor med längden större än ett.

På samma sätt kan du tilldela flera klasser genom att tilldela en teckensträng-vektor till class(). Klasserna ska ordnas från mer specifika till mer allmänna från vänster till höger, eftersom du vill börja med det beteende som är mest riktat mot ditt objekt. Till exempel:

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

Du kan kontrollera övriga klasser med den generella funktionen inherits() (docs). Till exempel:

inherits(x, "vowels")

Den här övningen är en del av kursen

Objektorienterad programmering med S3 och R6 i R

Visa kurs

Övningsinstruktioner

Variabeln kitty är fördefinierad i din arbetsmiljö.

  • Visa kitty genom att skriva dess namn.
  • Tilldela klasserna "cat", "mammal" och "character" till variabeln kitty.
  • Kontrollera att kitty har klasserna "cat", "mammal" och "character" (en i taget, i den ordningen) med inherits().
  • Kontrollera att kitty fortfarande är en teckensträng-vektor med is.character().
  • Kontrollera att kitty inte har klassen "dog".

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# View the kitty
kitty

# Assign classes
___ <- ___

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

# Is kitty a character vector?
___

# Does kitty inherit from dog?
___
Redigera och kör kod