Zacznij terazZacznij za darmo

Klasa wyższa

Zmienne mogą mieć więcej niż jedną klasę. W takim przypadku funkcja class() (docs) zwraca wektor znakowy o długości większej niż jeden.

Wielu klas możesz też przypisać jednocześnie, przekazując do class() wektor znakowy. Klasy należy uporządkować od bardziej szczegółowych do bardziej ogólnych – od lewej do prawej – ponieważ chcesz zaczynać od zachowania najbardziej dopasowanego do danego obiektu. Na przykład:

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

Do sprawdzenia pozostałych klas służy ogólna funkcja inherits() (docs). Na przykład:

inherits(x, "vowels")

To ćwiczenie jest częścią kursu

Programowanie obiektowe z S3 i R6 w R

Zobacz kurs

Instrukcje do ćwiczenia

Zmienna kitty jest już zdefiniowana w twoim środowisku.

  • Wyświetl wartość kitty, wpisując jej nazwę.
  • Przypisz zmiennej kitty klasy "cat", "mammal" oraz "character".
  • Sprawdź, czy kitty ma klasę "cat", "mammal" i "character" (po jednej na raz, w tej kolejności) za pomocą inherits().
  • Sprawdź, czy kitty nadal jest wektorem znakowym, używając is.character().
  • Sprawdź, że kitty nie ma klasy "dog".

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# View the kitty
kitty

# Assign classes
___ <- ___

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

# Is kitty a character vector?
___

# Does kitty inherit from dog?
___
Edytuj i uruchom kod