2016-07-07 4 views
0

これを実行してres1データセットの年齢グループ別のメンバー数を取得しました。しかし、カウントはグループ化されておらず、以下に示す数はデータセット全体のものです。私はどこが間違っているのか分からない。誰かがこれで私を助けてくれますか?ありがとうございました!dplyrを使用してRでデータをグループ化できない場合

res1 %>% group_by(Age_Group = res1[,'age_group']) %>% 
     summarise(Count = n_distinct(res1[,'ID'])) 
Source: local data frame [10 x 2] 

# Age_Group    Count 
#  <fctr>    <int> 
#1  >= 90   5000 
#2  0-9   5000 
#3  10-19   5000 
#4  20-29   5000 
#5  30-39   5000 
#6  40-49   5000 
#7  50-59   5000 
#8  60-69   5000 
#9  70-79   5000 
#10  80-89   5000 
+0

使用を動作するはずです 'RES1%>%GROUP_BY(AGE_GROUP)%>%集計(カウント= n_distinct(ID)) 'となります。後続のdplyrステップで元のデータフレームを参照しないでください。それはチェーンを破壊する。引用符で囲まれていない列名を使用します。 – MrFlick

+0

@MrFlickありがとうございます。 – NM24

答えて

1

あなたは配管演算子%>%を使用している場合は、それはオペレータの右側上の関数への最初の入力として演算子の左側に何フィード。 group_byステートメントからsummarizeステートメントにパイプすると、非表示のグループ化されていないデータフレームが隠されています。しかし、Countn_distinct(res1[,'ID'])と定義すると、元のグループ化されていないdata.frame res1にコールされ、group_byコールで作成したグループ化されたdata.frameは呼び出されません。だからこそ、あなたはグループごとのカウントではなく、合計のカウントを与えているのです。あなただけの引用符で囲まれていない列名を呼び出す必要があり、このようなdplyrパイプラインで

ので、これは:

res1 %>% group_by(Age_Group = age_group) %>% 
summarise(Count = n_distinct(ID)) 

+0

ありがとう!それは理にかなっている。 – NM24

+0

答えがあなたの質問に答えて問題を解決した場合は、回答を受け入れることでこれを示すことができます(上下の矢印の下にあるチェックマーク)。 –

関連する問題