2011年6月12日日曜日

Rのtable関数に関する調査

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 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計