Çok Sınıflı
Değişkenlerin birden fazla sınıfı olabilir. Bu durumda, class() (docs) birden fazla elemanlı bir karakter vektörü döndürür.
Aynı şekilde, class()'a bir karakter vektörü atayarak birden fazla sınıf belirleyebilirsin. Sınıflar soldan sağa doğru, daha özelden daha genele doğru sıralanmalıdır; çünkü nesnene en uygun davranışla başlamanı istersin. Örneğin:
x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")
Diğer sınıfları genel amaçlı inherits() (docs) fonksiyonunu kullanarak kontrol edebilirsin. Örneğin:
inherits(x, "vowels")
Bu egzersiz, kursun bir parçasıdır
R'de S3 ve R6 ile Nesne Yönelimli Programlama
Egzersiz talimatları
kitty değişkeni çalışma alanında önceden tanımlandı.
- Adını yazarak
kitty'yi görüntüle. kittydeğişkenine"cat","mammal"ve"character"sınıflarını ata.inherits()kullanarakkitty'nin sırasıyla"cat", ardından"mammal", ardından"character"sınıfına sahip olduğunu (tek tek) kontrol et.is.character()kullanarakkitty'nin hâlâ bir karakter vektörü olduğunu kontrol et.kitty'nin"dog"sınıfına sahip olmadığını kontrol et.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# View the kitty
kitty
# Assign classes
___ <- ___
# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___
# Is kitty a character vector?
___
# Does kitty inherit from dog?
___