2012-03-21 6 views
1

巨大マトリックスの因子の各レベルの変数のカテゴリ数を計算する必要があります。私は次のスクリプトでddplyを使ってみましたが、それは動作しませんでした。ddplyを使用してサブセット化する際の変数のレベルを計算する

ここでは、サンプルのデータフレームで自分のコードを行く:

a<-as.factor(c(1,1,1,2,2,2,3,3,3)) 
b<-as.factor(c(1,1,1,2,2,3,1,2,3)) 
df=data.frame(a=a,b=b) 

records=ddply(df, .(a), 
      summarise, 
      categories=length(levels(b)) 
     )    
records 

それが与える必要があります:

a categories 
1 1   1 
2 2   2 
3 3   3 

を誰がヒントを持っていますか?それは私を完全につかまえた.. ありがとう! Agus

答えて

0

因子のレベルは、サブセット化しても変更されません。レベルは、係数が取りうる値のうちの可能な値を表し、値のセットではありません。だから、それが働いた

> records 
    a categories 
1 1   1 
2 2   2 
3 3   3 
+0

を与えるいずれかが

records=ddply(df, .(a), summarise, categories=length(levels(droplevels(b))) ) 

あるいは

records=ddply(df, .(a), summarise, categories=length(unique(b)) ) 

を使用してコードを置き換えることができます!ブライアンに感謝! –

関連する問題