取引日ごとに欠損値を埋める
前の演習では、前日の最後の観測値を翌日の最初の観測値に繰り越しました。この演習では、前日の最終値を使わずに、取引日ごとに欠損値を埋める方法を学びます。
ここでも Introduction to xts and zoo のコースで紹介した split-lapply-rbind パターンを使います。参考までに、パターンを下に示します。
x_split <- split(x, f = "months")
x_list <- lapply(x_split, cummax)
x_list_rbind <- do.call(rbind, x_list)
do.call(rbind, ...) の構文を使うと、すべての名前を列挙せずに、オブジェクトのリストを rbind() に渡せます。
ワークスペースには、前の演習で作成した規則的な系列を持つ trade_day オブジェクトがありますが、NA はまだ埋められていません。
この演習はコースの一部です
Rで学ぶ金融データのインポートと管理
演習の手順
split()を使って、trade_dayのデータを日ごとのデータのリストに分け、daily_listオブジェクトを作成します。- 次に、
lapply()を使って、daily_listの各日データのNAを埋めます。 - 最後に、
do.call()とrbind()を使って、daily_filledを単一の xts オブジェクトfilled_by_trade_dayに変換します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Split trade_day into days
daily_list <- split(___ , f = "___")
# Use lapply to call na.locf for each day in daily_list
daily_filled <- lapply(___, FUN = ___)
# Use do.call to rbind the results
filled_by_trade_day <- do.call(rbind, ___)