Basitleştirmenin başarısız olması
Etkileşimli kullanım için sapply() harikadır. Çıktı türünü tahmin ederek basitleştirmeye çalışır ve genelde bu iyi çalışır. Ancak, fonksiyon yazarken sapply() güvenli bir seçenek değildir. sapply() çıktını basitleştiremezse, varsayılan olarak lapply() gibi bir liste döndürür. Bu, sen sapply()'nin basitleştirilmiş bir vektör döndüreceğini varsayarak özel fonksiyonlar yazdıysan tehlikeli olabilir ve bu fonksiyonları bozabilir.
2008 borsa çöküşüyle ilgili bilgiler içeren bir liste kullandığımız bir egzersize bakalım.
Bu egzersiz, kursun bir parçasıdır
Finans için Orta Düzey R
Egzersiz talimatları
market_crash listesi senin için oluşturuldu.
market_crashiçindeki her bir öğeninclass()'ını almak içinsapply()kullan.
Yeni bir liste, market_crash2 oluşturuldu. Fark, tarihin oluşturulma şeklinde!
market_crash2içindeki her bir öğeninclass()'ını almak içinlapply()kullan.market_crash2içindeki her bir öğeninclass()'ını almak içinsapply()kullan.
market_crash2 içindeki date birden fazla sınıfa sahip. sapply() bunu neden basitleştiremedi?
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Market crash with as.Date()
market_crash <- list(dow_jones_drop = 777.68,
date = as.Date("2008-09-28"))
# Find the classes with sapply()
___
# Market crash with as.POSIXct()
market_crash2 <- list(dow_jones_drop = 777.68,
date = as.POSIXct("2008-09-28"))
# Find the classes with lapply()
___
# Find the classes with sapply()
___