Aan de slagGa gratis aan de slag

Erg Klasse

Variabelen kunnen meer dan één klasse hebben. In dat geval geeft class() (docs) een karaktervector terug met een lengte groter dan één.

Je kunt ook meerdere klassen instellen door een karaktervector toe te wijzen aan class(). Zet de klassen van links naar rechts van specifieker naar algemener, omdat je wilt beginnen met het gedrag dat het meest gericht is op je object. Bijvoorbeeld:

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

Je kunt de andere klassen controleren met de algemene functie inherits() (docs). Bijvoorbeeld:

inherits(x, "vowels")

Deze oefening maakt deel uit van de cursus

Objectgeoriënteerd programmeren met S3 en R6 in R

Cursus bekijken

Oefeninstructies

De variabele kitty is al voorgedefinieerd in je werkruimte.

  • Bekijk kitty door simpelweg de naam te typen.
  • Wijs de klassen "cat", "mammal" en "character" toe aan de variabele kitty.
  • Controleer dat kitty de klasse "cat", en "mammal", "character" heeft (één voor één, in die volgorde) met inherits().
  • Controleer dat kitty nog steeds een karaktervector is met is.character().
  • Controleer dat kitty niet de klasse "dog" heeft.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# View the kitty
kitty

# Assign classes
___ <- ___

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

# Is kitty a character vector?
___

# Does kitty inherit from dog?
___
Code bewerken en uitvoeren