データクレンジングと言います。
あらゆるデータを紐付けて、
分析用のデータセットを作ります。
データクレンジングは大きく3つの操作があるかと思っています。
1.結合
2.整列
3.抽出
1.結合(マージ)
結合は、正規化されたデータを分析用にデータをまとめる作業です。
たとえば、コンビニの売上データを分析するときに、
2つのデータが用意されていたとします。
----
データ名:df1(店舗属性) カラムの名前: ShopID | adress | openDate
データ名:df2(店舗売上) カラムの名前: ShopID | totalRevenue
----
これをSQLで結合を行う場合は
select * from df1 innner join df2 on df1.ShopId = df2.ShopID;これをRで結合する場合は
merge(df1,df2,by="ShopID",all = T)
2.整列(ソート)
整列は、まとめたデータを順番に並べる作業です。
コンビニの売上データの例をとると、
「出店日」順で並べる。
「店舗売上」順で並べる。といった操作です。
「出店日順で並べる。」をSQLで行う場合には
select * from df3 order by openDate ;同じくRで行う場合には
merge(df1,df2,by="ShopID",all = T)
(*)df3はdf1とdf2をマージしたデータです。
3.抽出(フィルタリング)
抽出は、データを意味のあるデータ群にまとめる作業です。
同じようにコンビニの売上データの例をとると
「店舗売上」を5億円超をAランク、5億円〜3億円をBランク、
「出店日」を年度ごとにまとめる。といった作業です。
ランク付けをSQLで行う場合には
select * from df3 where totalRevenue > 500000000; select * from df3 where totalRevenue < 500000000 and totalRevenue >= 300000000;同じく、Rで行う場合には
rankA <- (df3$totalrevenue > 500000000) rankB <- (df3$totalrevenue <= 500000000) &(df3$totalrevenue > 300000000) df_rankA <- df3[rankA,] df_rankB <- df3[rankB,]
以下、補足
◯データクレンジングの操作は本当にこれだけ?
重複チェック、Nullチェックや、ナンバリングなど他にも
細かい操作はたくさんあるかと思いますが、
基本は上記の3つの組み合わせの作業なのかなと思ってます。
◯結合について
結合は、内部結合、外部結合を正しく理解してデータ操作を行い、
正しく結合しないと、存在しないはずのデータが増えたりします!
データクレンジングの作業にも落とし穴があるので、確認しながら作業をすることが大事です!