月次平均の生成
多くの場面で to.period() コマンドは便利ですが、今回の目的では、月全体を代表する1行だけを選ぶ方法は有用でないかもしれません。
その代わりに、月ごとの平均気温を算出する方が理にかなっています。そのためには、split() と lapply() を使って月次平均を手動で計算し、as.xts() で新しい xts オブジェクトを作成します。少し複雑に思えるかもしれませんが、これを行うためのスキルはすでに身についています!
前の演習で作成した、抽出済みの xts オブジェクト temps_xts_2 はワークスペースに読み込まれています。同様に、データでカバーされる各月の月初日を並べた日付ベクトルを持つ index オブジェクトも読み込まれています。
この演習はコースの一部です
ケーススタディ:Rで都市の時系列データを分析する
演習の手順
split()を使って、temps_xts_2のmean列から月ごとのリストを作成します。期間(引数f)には必ず"months"を指定してください。lapply()を使って、「平均の平均」、つまり各月の平均気温(mean の月平均)を計算します。as.xts()を使って、2010年から2015年のボストンの月次平均気温を含む新しい xts オブジェクトを作成します。その際、月次のmean_of_meansデータと月次のindexオブジェクトを結合する必要があります。- 最後に、新しい
temps_monthlyオブジェクトの期間と周期性がflights_xtsと一致していることを確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Split temps_xts_2 into separate lists per month
monthly_split <- split(___$___ , f = "___")
# Use lapply to generate the monthly mean of mean temperatures
mean_of_means <- lapply(___, FUN = ___)
# Use as.xts to generate an xts object of average monthly temperature data
temps_monthly <- as.xts(as.numeric(___), order.by = ___)
# Compare the periodicity and duration of your new temps_monthly and flights_xts
periodicity(___)
periodicity(___)