2013年8月8日木曜日

データクレンジングの方法 ~awkを使ったデータクレンジング~

以前、SQLとRでクレンジングをするやり方を記事にしました。

ただ、SQLとRも便利なんですが、
awkももっと便利だと気づいたので、メモを残したいと思います。

------
道はそれますが、

分析業務で一番時間をとられるのは、
データのクレンジングだったりするんですけど、
手法について整理された本てあまりないですよね?
システム環境とか、分析のゴールによって
クレンジングの仕方って変わるんで、
まとめるのが難しのが理由なのかもしれませんが。。

いろいろ調べて、「Bad Data」という洋書になんか
書かれているのではないかと思ってるんですけど、
洋書なんですよね。。 英語がんばろ。。

------

で、awkですが
こちらはプログラミング言語スクリプト言語です。
でも、VBAとかPythonよりも簡単につかえます。
なんたってもうエクセル関数を扱うノリでつかえます。
個人的には、Rよりもawkの方が実務向きなのではと思ってしまえます。


1.awkはどうやって使うの?

macを使っている方であれば、ターミナルを起動をすればすぐに使えます。

①ターミナルを起動
 Lanchpadのその他の中にあります。

②コマンドcdを使って、データが入っているディレクトリに移動 
 <コマンド例: cd data/criantA>

③コマンドawkを使って、ファイル「list.csv」の2列目だけのデータを取得       
 <コマンド例: awk '{BEGIN{FS = ","}{print $2}}' list.csv>

上記の3つの操作だけで、簡単にawkを試せてしまうのです。

※分からない方はbash(シェル)の勉強をおすすめします!
※Windosの方はgawkというものをダウンロードすれば使えるようです。

2.awkってなんなの?

データファイルの中身を一行ずつ処理してくれる、プログラミング言語スクリプト言語です。

http://antlers.cis.ibaraki.ac.jp/PROGRAM/CPROG/125.pdf

リンク先PDFの2P目が分かりやすいです。


3.awkの操作方法はどうやるの?

先ほどのように、ターミナルからコマンドを使って処理命令を出します。
具体的な命令の例については下記のURLがとても参考になります。

http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/awk/intro/awk-intro.pdf

※リンク先PDFの4P以降がわかりやすいです。

具体的な説明はリンクまかせになってしまいましたが。。
awkはとても便利ですよというお話をしたかったまでです。

エクセルでは扱えない大きなデータを処理するための
一歩として、確実に身に着けておきたい分析ツールのひとつだと思います!