crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

全国統一の小売物価統計のデータ分析2 - 読み込んだデータを分析しやすいように整える。

Photo by Leo Mendes on Unsplash 

www.crosshyou.info

の続きです。

前回はCSVファイルのデータをRに読み込ませました。

今回はデータを分析しやすいように整えます。

やるべきことは3つありました。

1。NAの行を削除する

2。title_code, title, name, time, data_typeを削除する

3。time_codeをYYYYMM形式に直す。

それではまず、NAの行を削除しましょう。

新しく分析用にdfというデータフレームを作成して、filter()関数の中で、is.na()関数を使ってname_codeがNAの行とpriceがNAの行を削除しました。

次は、不要な変数を除外します。

select()関数で不要な変数を除外しました。

最後は、time_codeをYYYYMM形式に直します。

はじめにYYYYMM形式にするカスタム関数を作成しました。str_sub()関数ではじめの4桁と最後の2桁を抽出して、paste0()関数でその二つを結合し、as.numeric()関数で数値型に変換しています。

このカスタム関数とmutate()関数でtime_codeをYYYYMM形式に変換しています。

summary()関数でサマリーを表示しています。name_codeは銘柄コードなので見てもあまり意味はないです。

time_codeを見ると、最小値は200002なので2000年2月からデータがあり、最大値が202204なので、2022年4月までデータがあることがわかります。

priceは最小値が0で最大値が6,002,690です。600万円の物って何でしょうね?

とりあえず、priceのデータがどんなものなのか、ヒストグラムや箱ひげ図などで視覚化してみます。

ほとんどの物は低価格なのですが、ほんの少数が600万円など高い物だとわかります。

そうだ、全部の時間軸(月)でデータがあるものだけに絞り込みます。

時間軸は267あることがわかりましたので、267個データの無い銘柄は欠損していることがわかります。

28個の銘柄が267の時間軸(月)全てそろっていることがわかります。

filter()関数と %in% でname_codeがfullsの中に含まれているものだけに絞り込みました。267*28=時間軸(月)の数*銘柄の数=7476なので、うまくできていることがわかります。

このdf_fullsのサマリーを見てみます。

最高価格6,002,690円の商品はこのデータフレームに残りました。最小価格は9円です。

それでは、このpriceを視覚化しましょう。こんどは対数に変換してから視覚化します。

対数変換したほうが分布がわかりやすいですね。いちいちlog()関数で対数にするのは面倒なので、対数変換した価格を変数に加えましょう。

今回は以上です。

次回は、

 

www.crosshyou.info

です。

はじめから読むには、

 

www.crosshyou.info

です。