計算收盤平均值
在探索了紅襪隊資料中的一些趨勢之後,你想建立一些實用的指標。在這個練習中,你會計算球隊在每季「收盤」時的勝負平均。用財務的說法,可以把它想成球隊在球季結束(close)時的價值。
若要計算收盤的勝負平均,你需要結合前幾章用過的幾個指令。
首先,根據每場比賽的得分來判定是否勝利。你可以用簡單的 ifelse() 指令,再搭配這個規則:當紅襪隊得分高於對手時,該場比賽為勝。
接著,使用 endpoints() 來找出每個球季最後一場比賽的日期。這個指令會在指定期間內,找出物件中的最後日期。
最後,為了計算每季收盤時的勝負平均,對資料的 win_loss 欄位使用 period.apply(),將 close 日期指定為索引,並以 mean 作為函式。
redsox_xts 物件已經在你的工作環境中。
本練習屬於課程
個案研究:在 R 中分析城市時間序列資料
練習說明
- 使用
ifelse計算win_loss:當boston_score大於opponent_score時設為1,否則為0。 - 使用
endpoints()找出每季最後一場比賽的日期。因為棒球球季落在同一年度,你可以把on參數設為"years",以取得每年最後一場比賽。將這些日期儲存為close。 - 使用
period.apply()計算每季收盤時的勝負平均。指定redsox_xts資料的win_loss欄位、以close日期作為期間,並將mean作為函式。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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[, "___"], ___, ___)