Tính trung bình trượt cho tất cả môn thể thao
Giờ bạn đã thành thạo việc lọc dữ liệu chỉ gồm các trận cuối tuần, khách hàng muốn bạn thử một hướng khác. Có thể ngành du lịch Boston khởi sắc khi các đội thể thao địa phương thắng nhiều trận hơn ngay trên sân nhà.
Thay vì tập trung vào các trận cuối tuần, nhiệm vụ của bạn là tạo trung bình trượt tỷ lệ thắng/thua tập trung vào các trận được chơi ngay tại Boston. Để tạo chỉ báo này, bạn sẽ quay lại lệnh rollapply() đã dùng ở trên, lần này áp dụng phép tính cho tất cả các đội thể thao khu vực Boston nhưng chỉ lọc các trận diễn ra trên sân nhà.
Bài tập này là một phần của khóa học
Nghiên cứu tình huống: Phân tích dữ liệu chuỗi thời gian của thành phố bằng R
Hướng dẫn bài tập
- Lọc dữ liệu
sportsđể chỉ gồm các trận diễn ra ở Boston (homegame = 1) theo định dạngdata[column == x]. Lưu đối tượng mới làhomegames. - Dùng
rollapply()để tính trung bình thắng/thua của 20 trận sân nhà gần nhất của các đội thể thao Boston. Bạn cần chỉ định cộtwin_losscủa dữ liệuhomegames, đặtwidthlà20, và đặt đối sốFUNlàmean. Lưu chỉ báo này vào đối tượnghomegamesdưới tênwin_loss_20. - Dùng lời gọi
rollapply()tương tự để tính trung bình thắng/thua trượt cho100trận. Lưu chỉ báo này vào đối tượnghomegamesdưới tênwin_loss_100. - Dùng
plot.zoo()để trực quan hóa cả hai chỉ báo. Hãy chọn các cộtwin_loss_20vàwin_loss_100và đặt đối sốplot.typelà"single"để xem cả hai trên cùng một biểu đồ. Giữ nguyên các đối sốltyvàlwdnhư hiện tại.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Generate a subset of sports data with only homegames
homegames <- sports[sports$___ == ___]
# Calculate the win/loss average of the last 20 home games
homegames$win_loss_20 <- rollapply(___$___, width = ___, FUN = ___)
# Calculate the win/loss average of the last 100 home games
homegames$win_loss_100 <-
# Use plot.xts to generate
plot.zoo(___[, c("___", "___")], plot.type = "___", lty = lty, lwd = lwd)