開始使用免費開始

計算收盤平均值

在探索了紅襪隊資料中的一些趨勢之後,你想建立一些實用的指標。在這個練習中,你會計算球隊在每季「收盤」時的勝負平均。用財務的說法,可以把它想成球隊在球季結束(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[, "___"], ___, ___)
編輯並執行程式碼