DS講座 tidyverse tidyverse講座

【R前処理講座31】{tidyr}:NA処理【tidyverse】

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

前回まででようやくtidyverseの8つのコアパッケージすべてについて解説し終えました.
これまででだいぶ前処理で困ることはなくなると思うんですが,大事なことがあと2つ,NA処理と時間処理が残っています.

今回はNA処理についてやっていきます.
実務ではNA処理がよくあるのでここを避けては通れません.
もうちょっと頑張っていきましょう!

0.NA処理ってなに??

 

NA処理ってなんですか??

データの欠損値に対する処理のことだよ.

欠損値はNAで表されて,NAのままだと扱いづらいから処理する必要があるんだ.

処理の方法は色々あるから1つずつ見てみよう.

我々が扱うデータは,前処理をする前の段階できれいであることは残念ながらめったにありません.(というか,絶対ないかな笑)
データの列がずれていたり,半角全角が入り混じっていたり,訳の分からないところにスペースが入っていたり...
そんな前処理前の汚いデータですが,その中でもよく目にするのがNAと表示される欠損値です.
NAは,not applicableもしくはnot availableの略語で,数値自体はあるはずだけどそれが欠損していることを表しています.
NAのままだと計算ができなかったり,予期しないエラーが発生したりといいことがありません.
よって,NAを処理してデータをきれいにする必要があるのです.
そのNAの処理の仕方を学んでいきましょう.
今回は以下のデータフレームを使用します.

 

 

1.NA削除 drop_na

drop_naでNAがある行を削除できます.
シンプルですが,NAが少ないならこれが一番よく使います.

 

NAがある行が消えていますね.
drop_naの()内に列を指定すると,指定した列のNA行を削除します.

 

先ほどとは違い,y列にはNAがありますが,削除されていないですね. z列を指定しているので,z列のNA行のみを削除していることが確認できました.

 

2.NA置換 replace_na

replace_naでNAを指定した値に置換できます.
replace_naの()内は名前付きリストで指定します.

こんな感じで各列のNA以外の値の平均に置換することもできます.

 

3.NAパディング fill

fillは,NAを,NAの上下どちらかの値でパディングします.
上下どちらにするかは,引数.direction("up"か"down")によって決定します.

 

 

 

まとめ

今回はNA処理について,以下のことを学習しました.

  1. NA削除 drop_na
  2. NA置換 replace_na
  3. NAパディング fill

今回はNA処理の中でも特に頻出の関数を紹介しました.
できたらNAは出てきてほしくないですが,残念ながら結構でてきちゃいます.
ってなわけで,泣く泣く学習しましょう笑
大丈夫,慣れればサクッとできますよ.

さぁ,次回はついに最後の最後,時間処理です.
こいつは頻出でかつかなり難しいので,ラストにふさわしいですよ!
最後の最後,頑張っていきましょう!

それじゃ,お疲れさまでした!!

-DS講座, tidyverse, tidyverse講座