井出草平の研究ノート

クロス表をスタック形式(リスト形式)にする[R][Excel]

データ分析ではスタック形式と呼ぶのが一般的だと思うが、リスト形式とも呼ぶらしい形式への変換だ。呼び方はさておき、パッケージや分析で時々この形式を使うので、変換が時々必要になる。少しややこしい方法を使っていたが、結構簡単にできることが分かった。
デモにはタイタニック・データを利用する。

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でもできるようだ。こちらの記事を参考にした。

dekiru.net

まずはクロス表をcsvで書き出す。

d1 <-titanic_train
ct3 <-table(d1$Pclass, d1$Sex)
write.table(ct3,"test.csv", quote = FALSE, sep = ",")

あとはExcelの作業になる。

csvファイルの読み込み

下記のようになっている。

f:id:iDES:20201013230907p:plain

[Alt]+[D]+[P]+を一緒に押して[ピボットテーブル/ピボットグラフウィザード]を起動させる

[Alt]+[D]+[P]+を一緒に押すとウィザードがでる。

f:id:iDES:20201013230932p:plain

指定を選択して次へ

f:id:iDES:20201013231012p:plain

ワークシートの範囲を指定する→追加→次へ

f:id:iDES:20201013231038p:plain

f:id:iDES:20201013231029p:plain

新規ワークシートを選択し、完了

f:id:iDES:20201013231054p:plain

作成した新規ワークシートで最終セルをダブルクリック

f:id:iDES:20201013231110p:plain

スタック形式の表が作られる

f:id:iDES:20201013231123p:plain