データ分析ではスタック形式と呼ぶのが一般的だと思うが、リスト形式とも呼ぶらしい形式への変換だ。呼び方はさておき、パッケージや分析で時々この形式を使うので、変換が時々必要になる。少しややこしい方法を使っていたが、結構簡単にできることが分かった。
デモにはタイタニック・データを利用する。
Rで行う
library(titanic) d1 <-titanic_train ct1<-table(d1$Pclass, d1$Sex, d1$Survived) ct2 <-as.data.frame(ct1) colnames(ct2) <- c("Pclass","Sex","Survived","freq") ct2
書き出したもの。
Pclass Sex Survived freq 1 1 female 0 3 2 2 female 0 6 3 3 female 0 72 4 1 male 0 77 5 2 male 0 91 6 3 male 0 300 7 1 female 1 91 8 2 female 1 70 9 3 female 1 72 10 1 male 1 45 11 2 male 1 17 12 3 male 1 47
要は、データフレームに変換するというだけである。
Excelで行う
Excelでもできるようだ。こちらの記事を参考にした。
まずはクロス表をcsvで書き出す。
d1 <-titanic_train ct3 <-table(d1$Pclass, d1$Sex) write.table(ct3,"test.csv", quote = FALSE, sep = ",")
あとはExcelの作業になる。
csvファイルの読み込み
下記のようになっている。
[Alt]+[D]+[P]+を一緒に押して[ピボットテーブル/ピボットグラフウィザード]を起動させる
[Alt]+[D]+[P]+を一緒に押すとウィザードがでる。
指定を選択して次へ
ワークシートの範囲を指定する→追加→次へ
新規ワークシートを選択し、完了
作成した新規ワークシートで最終セルをダブルクリック
スタック形式の表が作られる