ПочатиПочніть безкоштовно

Дуже класно

Змінні можуть мати більше ніж один клас. У такому разі class() (документація) повертає символьний вектор довжини більшої за одиницю.

Так само можна задати кілька класів, присвоївши символьний вектор функції class(). Класи слід упорядковувати від більш конкретних до загальніших зліва направо, адже ви хочете починати з поведінки, найточніше налаштованої під ваш об'єкт. Наприклад:

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

Ви можете перевіряти наявність інших класів за допомогою універсальної функції inherits() (документація). Наприклад:

inherits(x, "vowels")

Ця вправа є частиною курсу

Об'єктно-орієнтоване програмування з S3 та R6 в R

Переглянути курс

Інструкції до вправи

Змінну kitty уже визначено у вашому робочому середовищі.

  • Перегляньте kitty, ввівши її ім'я.
  • Присвойте змінній kitty класи "cat", "mammal" і "character".
  • Перевірте, що kitty має класи "cat", а також "mammal", "character" (по одному, у такому порядку) за допомогою inherits().
  • Перевірте, що kitty усе ще є символьним вектором за допомогою is.character().
  • Переконайтеся, що kitty не має класу "dog".

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# View the kitty
kitty

# Assign classes
___ <- ___

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

# Is kitty a character vector?
___

# Does kitty inherit from dog?
___
Редагувати та запускати код