MulaiMulai sekarang secara gratis

Hitung dan plot rerata musiman

Pada latihan sebelumnya Anda menggunakan endpoints() dan period.apply() untuk dengan cepat menghitung rerata menang/kalah Boston Red Sox pada akhir setiap musim. Namun bagaimana jika Anda perlu mengetahui rerata kumulatif sepanjang setiap musim? Baik ahli statistik maupun penggemar olahraga sering mengandalkan rerata ini untuk membandingkan suatu tim dengan para pesaingnya.

Untuk menghitung rerata kumulatif di tiap musim, Anda perlu kembali ke rumus split-lapply-rbind yang dipraktikkan di Bab Tiga. Pertama, Anda akan membagi data berdasarkan musim, lalu menerapkan fungsi mean kumulatif pada kolom win_loss di setiap musim, kemudian menggabungkan kembali nilainya menjadi sebuah objek xts.

Fungsi kustom cummean(), yang menghasilkan jumlah kumulatif dan membaginya dengan jumlah nilai yang disertakan dalam penjumlahan, telah disediakan untuk Anda. Data redsox_xts, termasuk kolom win_loss, tersedia di workspace Anda.

Latihan ini adalah bagian dari kursus

Studi Kasus: Menganalisis Data Deret Waktu Kota di R

Lihat Kursus

Petunjuk latihan

  • Gunakan split() untuk memecah data redsox_xts berdasarkan musim (dalam hal ini, years). Simpan sebagai redsox_seasons.
  • Gunakan lapply() untuk menghitung mean kumulatif untuk setiap musim. Untuk latihan ini, fungsi cummean() telah dirancang untuk menghitung jumlah (menggunakan cumsum()) dan membaginya dengan jumlah entri dalam penjumlahan (menggunakan seq_along()). Simpan data ini ke redsox_ytd.
  • Gunakan do.call() dengan rbind untuk mengonversi keluaran list Anda menjadi satu objek xts (redsox_winloss) yang memuat rerata menang/kalah sepanjang setiap musim.
  • Gunakan plot.xts() untuk melihat rerata menang/kalah kumulatif selama musim 2013. Biarkan argumen ylim sebagaimana adanya pada kode yang sudah disiapkan.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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))
Edit dan Jalankan Kode