Mevsimsel bir ortalama hesapla ve görselleştir
Önceki egzersizde sezon sonunda Boston Red Sox için galibiyet/mağlubiyet ortalamasını hızlıca hesaplamak üzere endpoints() ve period.apply() kullandın. Peki ya her bir sezon boyunca kümülatif ortalamayı bilmen gerekse? İstatistikçiler ve spor tutkunları, bir takımı rakipleriyle karşılaştırmak için sıkça bu ortalamaya başvurur.
Her sezon için kümülatif ortalama hesaplamak üzere, Üçüncü Bölümde çalıştığın split-lapply-rbind formülüne geri döneceksin. Önce veriyi sezona göre böleceksin, sonra her sezonda win_loss sütununa kümülatif ortalama fonksiyonu uygulayacaksın, ardından değerleri tekrar bir xts nesnesinde birleştireceksin.
Toplamın kümülatifini üretip toplamda yer alan değer sayısına bölen özel bir cummean() fonksiyonu senin için hazırlandı. win_loss sütunu da dahil olmak üzere redsox_xts verisi çalışma alanında mevcut.
Bu egzersiz
Vaka Çalışması: R ile Şehir Zaman Serisi Verilerini Analiz Etme
kursunun bir parçasıdırEgzersiz talimatları
redsox_xtsverisini sezonlara (bu örnekteyears) ayırmak içinsplit()kullan. Bunuredsox_seasonsolarak ata.- Her sezon için kümülatif ortalamayı hesaplamak üzere
lapply()kullan. Bu egzersizde, toplamı (cumsum()) hesaplayıp toplam içindeki giriş sayısına (seq_along()) bölen bircummean()fonksiyonu tasarlandı. Bu veriyiredsox_ytdolarak kaydet. - Liste çıktını tek bir xts nesnesine dönüştürmek için
do.call()ilerbindkullan; bu nesne (redsox_winloss) her sezon boyunca galibiyet/mağlubiyet ortalamasını içermelidir. 2013sezonu sırasında kümülatif galibiyet/mağlubiyet ortalamasını görmek içinplot.xts()kullan. Hazır kodundaylimargümanını olduğu gibi bırak.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Split redsox_xts win_loss data into years
redsox_seasons <- split(___$___, f = "___")
# Use lapply to calculate the cumulative mean for each season
redsox_ytd <- lapply(___, cummean)
# Use do.call to rbind the results
redsox_winloss <- do.call(___, ___)
# Plot the win_loss average for the 2013 season
plot.xts(___["___"], ylim = c(0, 1))