データを手にしたとき、とりあえずデータを集計してみる、という業務はよく発生します。
データ集計ツールは世の中にたくさんあります。その中で手軽に集計するなら、Excelのピボットテーブルなどでしょう。
Excelのピボットテーブルのように手軽にお金を掛けずに、専門のデータ分析ツールでデータ集計したい、そういう要望も当然あるかと思います。
専門のデータ分析ツールと言えば、最近ですとRとPythonです。どちらでも、Excelのピボットテーブルのようにインタラクティブにデータを集計するということができます。
今回は、「無料の分析ツールであるRを使ったお手軽ピボット集計方法」の1つをご紹介します。
利用するライブラリー
先ずは、利用するライブラリーのご紹介をします。
他にもあるかもしれませんが、インタラクティブにピボット集計するならという視点で考えると、以下です。
rpivotTable: A pivot table for R
https://cran.r-project.org/web/packages/rpivotTable/vignettes/rpivotTableIntroduction.html
準備
Rtools(C++ Compilerなど)をインストールされていない方は、以下からダウンロードしインストールしておいてください。
Using Rtools40 on Windows
https://cran.rstudio.com/bin/windows/Rtools/
次に、必要なパッケージをインストールしておきます。次の2つです。
- htmlwidgets
- rpivotTable
以下、コードです。
install.packages('htmlwidgets', 'rpivotTable')
サンプルデータ
今回は、サンプルデータとしてRにあらかじめ用意されている「warpbreaks」(織機ごとの糸の切れ目の数)のデータに対し、ピボット集計してみます。
どのようなデータなのか確かめたい場合には、以下のコードを入力し実行してください。
str(warpbreaks)
以下、実行結果です。
- breaks 切れ目の数
- wool ウールのタイプ (A or B)
- tension 張りの強さレベル (L, M, H)
ウールのタイプ (A or B)×張りの強さレベル (L, M, H)ごとに9つの織機のデータが取得されています。そのため、レコード数は54(=6×9)です。
ピボット集計の実行
では実際にピボット集計してみます。
以下、コードです。
#パッケージの読み込み library("rpivotTable") #データセット testData <- warpbreaks #ピボット集計実行 rpivotTable(testData, width = "100%", height = "400px")
以下、実行結果です。
ブラウザ上でインタラクティブに集計していきます。
カウント
次のように、表側と表頭を設定しデータをカウントしてみます。
- 表側 wool:ウールのタイプ (A or B)
- 表頭 tension:張りの強さレベル (L, M, H)
ウールのタイプ (A or B)×張りの強さレベル (L, M, H)ごとに9つの織機のデータがあることが分かります。
平均値
次に、ウールのタイプ (A or B)×張りの強さレベル (L, M, H)ごとにbreaks(切れ目の数)の平均値を集計してみます。
次に、標準偏差です。
グラフ表現
ウールのタイプ (A or B)×張りの強さレベル (L, M, H)ごとにbreaks(切れ目の数)の平均値に、棒グラフを追加したピボットテーブルです。
次に、ヒートマップで表現し直してみます。
もっとたくさんの種類の集計ができます。興味のある方は、色々なデータで色々といじってみてください。