No.20146 Re: 「0」とカウントされるtable() 【青木繁伸】 2013/08/23(Fri) 08:48
探すより作る方が速いので,変数は整数値を取るものとして以下のように> t.table <- function(x) {
+ return(table(factor(x, level=min(x):max(x))))
+ }
> x <- c(1,1,2,5)
> t.table(x)
1 2 3 4 5
2 1 0 0 1
> tt.table <- function(x, y) {
+ z <- c(x, y)
+ return(table(rep(c(deparse(substitute(x)), deparse(substitute(y))),
+ c(length(x), length(y))), factor(z, level=min(z):max(z))))
+ }
> x1 <- c(1,1,2,1,3,1,1,2,3)
> x2 <- c(1,4,3,3,3,1,5,6,1)
> tt.table(x1, x2)
1 2 3 4 5 6
x1 5 2 2 0 0 0
x2 3 0 3 1 1 1
No.20150 Re: 「0」とカウントされるtable() 【波音】 2013/08/24(Sat) 17:41
回答ありがとうございます。
factor関数で水準(levels)を任意で付加してあげれば,全水準について集計されるから,ベクトル内に存在しない値も「0」とカウントされるようになるのですね。知りませんでした・・
2つ引数がある場合はベクトルの長さの文だけ「変数ラベル」を用意してから,そのクロス集計をしてあげることで実現可能だったのですね。大変勉強になりました。
ありがとうございました!
● 「統計学関連なんでもあり」の過去ログ--- 046 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る