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

vapply() vs. sapply()

Son örnekte, sapply() basitleştirmede başarısız oldu çünkü market_crash2 içindeki date öğesinin iki sınıfı vardı (POSIXct ve POSIXt). Ancak, herhangi bir hata fırlatılmadığına dikkat et! Eğer yazdığın bir fonksiyon sapply() tarafından basitleştirilmiş bir vektörün döndürülmesini bekleseydi, bu kafa karıştırıcı olurdu.

Bunu hesaba katmak için, vapply() adlı daha katı bir apply fonksiyonu vardır. Bu fonksiyon, her çağrıldığında döndürülmesi gereken çıktının türünü ve uzunluğunu belirtebileceğin ek bir FUN.VALUE argümanı içerir.

Eğer class() dönüş değerinin uzunluğu 1 olan bir karakter vektörü olmasını BEKLİYORSAN, bunu vapply() kullanarak belirtebilirsin:

vapply(market_crash, class, FUN.VALUE = character(1))
dow_jones_drop           date 
     "numeric"         "Date"

FUN.VALUE için diğer örnekler numeric(2) veya logical(1) olabilir. market_crash2 yine senin için tanımlı.

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

Finans için Orta Düzey R

Kursa Göz Atın

Egzersiz talimatları

  • market_crash2 öğelerinin class() bilgisini bulmak için yine sapply() kullan. Nasıl hata yerine bir liste döndürdüğüne dikkat et.
  • market_crash2 üzerinde vapply() kullanarak class() bilgisini bul. FUN.VALUE = character(1) olarak belirt. Uygun şekilde başarısız olmalıdır.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Market crash with as.POSIXct()
market_crash2 <- list(dow_jones_drop = 777.68, 
                      date = as.POSIXct("2008-09-28"))

# Find the classes with sapply()
___

# Find the classes with vapply()
___
Kodu Düzenle ve Çalıştır