Tính trung bình tại thời điểm chốt mùa
Sau khi đã khám phá một số xu hướng trong dữ liệu Red Sox, bạn muốn tạo ra vài chỉ báo hữu ích. Trong bài tập này, bạn sẽ tính tỉ lệ thắng/thua của đội tại cuối mỗi mùa giải. Theo cách nói trong tài chính, bạn có thể coi đây là giá trị của đội tại thời điểm chốt mùa.
Để tính trung bình thắng/thua tại thời điểm chốt, bạn sẽ cần kết hợp vài lệnh đã dùng ở các chương trước.
Đầu tiên, bạn sẽ xác định trận thắng dựa trên điểm số mỗi trận. Bạn có thể làm điều này bằng ifelse() đơn giản và biết rằng Red Sox thắng những trận mà họ ghi nhiều điểm hơn đối thủ.
Tiếp theo, bạn sẽ xác định ngày của trận cuối cùng mỗi mùa bằng endpoints(). Lệnh này xác định ngày cuối cùng trong đối tượng của bạn trong các khoảng thời gian nhất định.
Cuối cùng, để tính trung bình thắng/thua tại thời điểm chốt mỗi mùa, chỉ cần dùng period.apply trên cột win_loss của dữ liệu, chỉ định các ngày close làm chỉ mục, và mean làm hàm.
Đối tượng redsox_xts đã có sẵn trong workspace của bạn.
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
- Dùng
ifelseđể tínhwin_loss, được mã hóa là1nếuboston_scorelớn hơnopponent_scorevà0nếu không. - Dùng
endpoints()để xác định ngày của trận cuối cùng trong mỗi mùa. Vì mùa bóng chày nằm gọn trong một năm, bạn có thể đặt đối sốonlà"years"để lấy trận cuối cùng mỗi năm. Lưu các ngày này vàoclose. - Dùng
period.apply()để tính trung bình thắng/thua tại thời điểm chốt mùa. Chỉ định cộtwin_losscủa dữ liệuredsox_xts, các ngàycloselàm khoảng thời gian, vàmeanlàm hàm.
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 new variable coding for red sox wins
redsox_xts$win_loss <- ifelse(redsox_xts$___ > redsox_xts$___, 1, 0)
# Identify the date of the last game each season
close <- endpoints(___, on = "___")
# Calculate average win/loss record at the end of each season
period.apply(redsox_xts[, "___"], ___, ___)