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
Egzersiz talimatları
market_crash2öğelerininclass()bilgisini bulmak için yinesapply()kullan. Nasıl hata yerine bir liste döndürdüğüne dikkat et.market_crash2üzerindevapply()kullanarakclass()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()
___