BaşlayınÜcretsiz başlayın

Bir S3 yöntemi oluşturma (2)

Eğer bir generik için uygun bir yöntem bulunamazsa, bir hata fırlatılır. Örneğin şu anda get_n_elements() yalnızca data.frameler için bir yönteme sahip. Bunun yerine get_n_elements() fonksiyonuna bir matris verirsen, bir hata görürsün.

> get_n_elements(matrix())
Error: no applicable method for 'get_n_elements' applied to an object of class "c('matrix', 'array', 'logical')"

Her bir girdi türü için onlarca yöntem yazmak yerine, belirli bir yöntemi olmayan tüm türleri ele alan bir yöntem oluşturabilirsin. Buna default (öntanımlı) yöntem denir; adı her zaman generic.default biçimindedir. Örneğin, kendi print() (docs) yöntemi olmayan herhangi bir nesneyi print.default() (docs) yazdırır.

Bu egzersiz, kursun bir parçasıdır

R'de S3 ve R6 ile Nesne Yönelimli Programlama

Kursa Göz Atın

Egzersiz talimatları

Çalışma alanında get_n_elements() generiği ve data.frameler için bir yöntem tanımlı.

  • Çalışma alanını keşfetmek için ls.str() (docs) kullan.
  • get_n_elements() için bir S3 default yöntemi yaz.
    • Fonksiyonun adı, generiğin adı, ardından bir . ve default olmalı.
    • Girdi argümanları x ve ... olmalı.
    • Fonksiyon gövdesi tek satır olmalı ve rastgele bir nesnedeki öğe sayısını döndürmeli. Satranç oyunu örneğinde yaptığın tekniğin aynısını, Make it Classy (1) egzersizindeki gibi kullan.
  • Yöntemini ability.cov (docs) veri kümesi üzerinde çağır ve sonucu n_elements_ability.cov değişkenine ata.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# View predefined objects
___

# Create a default method for get_n_elements
___ <- ___




# Call the method on the ability.cov dataset
n_elements_ability.cov <- ___
Kodu Düzenle ve Çalıştır