dplyrのlead関数、lag関数の使い方

顔妻です。

今回はdplyrを使ったlead関数、lag関数の使い方です。

データテーブルの行列入れ替えを行うと大変な作業になるけども、行の前後の値を使って比較評価を行いたときがあると思います。sqlにあるOLAP関数のlag関数、lead関数と同じような使い方できますので行の前後の値を使ったり、並び替えを行ってうまく別の使い方をしたりしてみてください。

lag関数、lead関数の挙動確認[数値]

まずは数値で挙動を確認してみましょう。

c1 lead_01 lead_02 lead_03 lag_01 lag_02 lag_03
1 1 2 3 4 NA NA NA
2 2 3 4 5 1 NA NA
3 3 4 5 NA 2 1 NA
4 4 5 NA NA 3 2 1
5 5 NA NA NA 4 3 2

lag関数、lead関数の挙動確認[文字列]

蛇足感がありますが文字列でも確認しましょう。数値と文字の両方で使いこなせればRに読み込めるデータでできないシーンはないのではないでしょうか?

c2 lead_01 lead_02 lead_03 lag_01 lag_02 lag_03
1 a b c d NA NA NA
2 b c d e a NA NA
3 c d e NA b a NA
4 d e NA NA c b a
5 e NA NA NA d c b

まとめ

いかがでしょうか?冒頭でも書いていますが、行の前後の値を比較評価するときは行列を入れ替えることで比較評価をすることもできます。ただし、行列を入れ替えを行うとどうしても横に長くなり過ぎてしまし結果的に時間がかかりすぎて分析ができないなんてこともあります。また、行列入れ替え後改めて行列を戻すのは集計ミスにも繋がりやすいのできるだけ避けたいところです。lag関数、lead関数はこんなときに非常に役立ちますので是非活用してみてください。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA