クロス集計表の作成
Excelにはピポッドテーブルという自動的にクロス集計表を作ってくれる便利な機能が備わっていますが、僕はピポッドテーブルが使いにくくてしょうがない(と感じる)のでRでクロス集計表を作成する方法を紹介します。同時にExcelのワークシートからデータを読み込む方法も紹介します。
Rの初期状態(インストールしたばかりの状態)ではまず次のようにしてパッケージをインストールします。
install.packages("RODBC") |
続いて以下のようにコマンドします。
library(RODBC) connection1<-odbcConnectExcel("d:\\yubiwa.xls") dat<-sqlQuery(connection1,"SELECT*FROM[Sheet1$A1:C48]") cross<-table(dat[,2],dat[,3]) odbcClose(connection1) |
上のコマンドの意味は次の通りです。
library(RODBC) …RODBCパッケージを呼び出す connection1<-odbcConnectExcel("d:\\yubiwa.xls") …Dドライブに保存してあるyubiwa.xlsを読み込む dat<-sqlQuery(connection1,"SELECT*FROM[Sheet1$A1:C48]") …変数"dat"にSheet1の範囲A1:C48の部分を代入 cross<-table(dat[,2],dat[,3]) …変数"cross"にクロス集計の結果を代入 odbcClose(connection1) …Excelとの接続を閉じる(忘れないように注意!!) |
もし2*2分割表の棒グラフを書きたいのであれば、、、
barplot(cross,beside=T,...) |
ちなみにRのtable()関数は欠損値を自動的に排除(NAとする)してくれるので、欠損値があってもそのまま読み込ませて大丈夫です。