Subscribed unsubscribe Subscribe Subscribe

dplyrで行方向の足し算

dplyrでデータ加工が格段に楽になった.

selectやら*joinやらmutateやらで切った貼ったはなれれば感覚的だし,列方向の集計はsummarise_at(vars(1:10), funs(mean,sd))とかでいける.

group_byしちゃって分類ごとに集計することやRcppRollパッケージを使えば移動平均も簡単.

詳細は素晴らしい使い方サイトがあるのでここでは触れない.

ただ,以外と行方向の集計に手こずったのでメモ.

> matrix(runif(10*3),ncol=3) %>>% (~rowMeans(.)-> tmp) %>% tbl_df() %>% mutate(rmean=rowMeans(.[1:3])) %>% cbind(.,tmp) %>% mutate(diff=rmean-tmp)
          V1        V2        V3     rmean       tmp diff
1  0.9512258 0.9323834 0.3673428 0.7503173 0.7503173    0
2  0.6022213 0.4665859 0.5452625 0.5380232 0.5380232    0
3  0.9128597 0.5536906 0.7513243 0.7392916 0.7392916    0
4  0.9844938 0.7430882 0.3007915 0.6761245 0.6761245    0
5  0.1188505 0.4204854 0.2030719 0.2474693 0.2474693    0
6  0.2920467 0.8497445 0.8380774 0.6599562 0.6599562    0
7  0.2079907 0.1409728 0.2556858 0.2015498 0.2015498    0
8  0.3650271 0.2323105 0.1202650 0.2392009 0.2392009    0
9  0.3368931 0.5872122 0.5272524 0.4837859 0.4837859    0
10 0.4177050 0.6991706 0.8312461 0.6493739 0.6493739    0