Hazy Ideas

日々の勉強の気づきを書き出しています

R: applyとdplyrとpurrr

*個人勉強用メモ

 

applyファミリーの関数は、データ操作に使われる。

データの分割、適用、結合にはplyrパッケージが使われる。

dplyrとpurrrに代替される。

 

dplyrによるグルーピング操作

上記パッケージよりも高速で使いやすい。

列select、行filter/slice、グルーピングgroup_by、列の変更追加mutate

dplyr内にmagrittr(パイプ演算子の利用可能)が含まれている。

例)

select(diamonds, carat, price)

diamonds %>% select(contains('c'))

diamonds %>% filter(cut == 'Ideal')

diamonds %>% filter(carat <1 | carat >5 )

 

行を指定するとき、filterは論理式で、sliceは行番号で指定する。

diamonds %>% slice(1:5)

新しい列の作成や変更にはmutate

diamonds %>% select(carat, price) %>% mutate(price/carat)

 

magrittrの機能に代入パイプ演算子%<>%

左辺を右辺に渡した後で、左辺のオブジェクトに代入し返す機能。

summarize関数:列に対して要約する

group_by関数:列に対して分割する

diamonds %>%

      + group_by(cut) %>%

      + summarize(AvgPrice=mean(price))

 

dplyrはMySQLなどのデータベースをdata.frameと同様に操作できる。

 

listの要素に対して反復処理を行うpurrr。基礎はmap関数。

applyファミリーの関数の代替、listに対する反復処理が簡単になる。