DS講座 tidyverse tidyverse講座

【R前処理講座13】{dplyr} データフレーム処理【tidyverse】

こんにちは,shun(@datasciencemore)です!!

今回は,tidyverseのコアパッケージの1つである{dplyr}について説明していきます.
{dplyr}は,tidyverseのコアパッケージの中でも最重要かつ最もよく使うパッケージだと思います.
{dplyr}を使えるようになると,前処理がすんごく楽になるのでしっかりついてきてくださいね!!

1.{dplyr}ってなに??

{dplyr}ってなんですか??

{dplyr}は,データフレームの処理に特化したパッケージだよ.
{dplyr}には前処理に必要不可欠な便利関数がたくさんあるんだ!!

{dplyr}は,データフレームの処理に特化したパッケージです.
データフレームは目的に応じて様々な形に変形する必要がありますよね.

例えば,
・この列の数値が100以上の行を抽出する.
・これらの列はいらないから削除する.
・新たな列を追加したい.
などなど...

このようなデータフレーム処理に特化したパッケージが{dplyr}です.
{dplyr}ですが,様々な便利関数が内蔵されています.
...が,全部紹介することは到底不可能です笑

ですので,まずは超よく使う3つの関数select, filter, mutateについて簡単にご紹介して,前処理の雰囲気をつかんでいただければと思います.
より詳細には別記事で別途紹介する予定です.
それでは,さっそく学習していきましょう!

今回は,tidyverseをロードすると使えるようになる「diamonds」というデータを使用していきます.

「diamonds」は,このような感じのデータです.

 

それでは,順番に使用方法を見ていきましょう.

2.filter

まずは1つ目,filterからです.
filterは,条件を指定してあげて,その条件を満たした行を抽出するときに使用します.
こんな感じのイメージです.

ここでいう条件っていうのは,どのような行が欲しいかの情報を示してます.

データフレーム %>% filter(条件)

条件というところに,欲しいデータの条件を記述することで,欲しいデータを抽出することができます.

例えば,diamondsを調べているときに,全部ではなくて,その一部のcolor列が「E」であるデータだけが欲しかったとしましょう.
その場合,このように書いて,実行すると以下のようになります.

color == "E"の部分が条件に該当します.
このように欲しい行の情報を条件として,指定してあげることによって,その行を抽出できるのです.

2.select

さぁ,続いては2つ目,selectです.
selectは,データフレームの列の一部を取り出すときに使用します.
イメージにするとこんな感じ.

ここの条件もfilterと同様に,どのような列が欲しいかの情報ってことですね

データフレーム %>% select(条件)

条件というところに,欲しいデータの条件を記述することで,欲しいデータを抽出することができます.

例えば,diamondsのcarat列,color列,depth列,price列を抽出したいときは,次のようになります.

 

と,指定した列が抽出できることが確認できます.
余裕ですね笑

select内で指定している列名に「'」や「”」がないことに注目してください.
pandasでは,列をしているするときに'列名'としていましたが,dplyrはその必要がありません.
これ,地味に便利ですよ笑

ちなみに「"」を使用しても動作します.
しかし,これは古いバージョンのdplyrでは動作しない場合があるので,「"」を使用する必要がない場合は「"」をつけないでおきましょう.
参考に「"」をつけた場合のコードも載せておきますね.

 

3.mutate

最後の3つ目,mutateです.
mutateは,データフレームに指定した条件の列を追加をするときに使用します.
イメージがこんな感じです.

ここの条件もfilter,selectと同様です.

データフレーム %>% mutate(条件)

条件というところに,追加したい列の情報を記述することで,欲しいデータを追加することができます.
例えば,diamondsにtest列という列を新規で作成し,その列に1を代入したいことを考えます.
それを実現させるためには以下のコードでOKです.

 

右側にtest列が追加されていることが確認できますね.
こんな感じで新規で列を追加したいときにmutateを使用します.

まとめ

今回は,{dplyr}のうち,定番中の定番であるfilter,select,mutateについて,学習しました.

それぞれの特徴は次のとおり

  1. filter:条件を満たした列を抽出
  2. select:条件で指定した列を抽出
  3. mutate:条件で指定した列を追加

どれもめっちゃ使うので,ぜひ覚えてくださいね!!
また,今回紹介した関数はごくごく一部です.

dplyrはもっと色々な関数があるので,それらについては別途紹介させていただきますね.

それじゃ,お疲れ様でした!!

-DS講座, tidyverse, tidyverse講座