2016-11-22 7 views
-2

次の2つの変数のクロス集計はどのようにして見つけることができますか?2つのカテゴリ変数のクロス集計

X Y 
6 7 
8 8 
9 10 

私はこのように行く:

X <- c(6,8,9) 
Y <- c(7,8,10) 
X <- factor(X) 
Y <- factor(Y)  

私はX、次のコマンドを使用してYの頻度が見つかりました:

table(X) 
table(Y) 

をしかし、私はそれらを使用する方法がわかりません。 、

Y 6 7 8 9 10 
X 
6 0 1 0 0 0 
7 0 0 0 0 0 
8 0 0 1 0 0 
9 0 0 0 0 1 
10 0 0 0 0 0 

番号6,7,8,9: 私は、コマンド

table(X,Y) 

で行列を印刷しようとしたが、それはまさにこのようになります私が欲しいの結果、ではありません10は、すべて異なるレベルのXYです。

+0

あなたが望むものは不明です。上の 'X'と' Y'ベクトルの出力がどのように表示されるべきかの例を挙げてください。 'table(X、Y)'は 'matrix'ではなく3x3グリッドを生成します。 'unclass(table(X、Y))'を使って 'matrix 'にすることができます。 – Barker

+0

私は上記の私の投稿を編集しました。 –

答えて

0

tableには、各変数に含まれていないレベルがあることを伝える必要があります。 (要因にXYを作ることは時期尚早実際に、それは価値があるよりも多くの問題が発生します。)

X <- c(6,8,9) 
Y <- c(7,8,10) 
vals <- c(X,Y) 
levs <- min(vals):max(vals) 
table(factor(X,levs),factor(Y,levs)) 

あなたが要因で始まる場合は、levs <- sort(union(levels(X),levels(Y)))を使用することができます。この場合、Rは因子レベルアルファベット順に(「10」は「6」の前に来る)をソートするので、迷惑になる。

関連する問題