R言語のtable関数はクロス集計のために用いられる関数である。Excelではピボットテーブルに相当する機能である。呼び出しの形式は以下の通りである。
table(..., exclude = if (useNA == "no") c(NA, NaN), useNA = c("no","ifany", "always"), dnn = list.names(...), deparse.level = 1)
多くの場合、オプションは気にしなくても良いようである。単純な使い方から順に説明する。
1つのカテゴリ変数をtable関数に与えると、カテゴリごとの集計が行われる。次の例を見て欲しい。
> table(state.region) # アメリカ50州の国勢調査対象地域の分類 # 地域ごとの集計結果が出力される state.region Northeast South North Central West 9 16 12 13 > table(rbinom(10,1,0.5)) # 0,1が0.5の割合で現れる2項分布から10個データをランダムに生成 # 0,1になった個数が、それぞれ3、7であったことを示している(ランダムなので結果は毎回異なる) 0 1 3 7
2変数を与えるとクロス集計もできる。
# state.x77はアメリカ50州のデータ。平均所得の範囲を確認 > range(state.x77[,"Income"]) [1] 3098 6315 # 1000刻みで数値をカテゴリに変換する > state.income <- cut(state.x77[,2],breaks=seq(from=3000,to=7000,by=1000)) > table(state.income,state.region) state.region state.income Northeast South North Central West (3e+03,4e+03] 2 10 0 1 (4e+03,5e+03] 5 5 10 9 (5e+03,6e+03] 2 1 2 2 (6e+03,7e+03] 0 0 0 1
この表から、南部の収入がやや低い傾向を窺うことができる。余談ではあるが、1人当たりの平均所得が一番高い州(上の表では右下の1のこと)はアラスカであった。資源が豊富で、油田による収益が大きいのがその理由である。
0 件のコメント:
コメントを投稿