2016-07-07 127 views
0

對R中的數據進行分組時遇到困難我運行了此命令,以按res1數據集中的年齡組獲取不同成員的數量。但是,計數未分組,並且您在下面看到的計數是針對整個數據集的。我不確定我要去哪裏錯。有人可以幫助我嗎?謝謝!在使用dplyr

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

@MFFlick非常感謝。 – NM24

回答

1

當你正在使用的管道運營商%>%其輸送什麼在運營商爲第一輸入對操作者的權利的功能的左側。當您從group_by聲明中匯入彙總語句時,會出現隱藏的未命名分組數據框。但是,如果將Count定義爲n_distinct(res1[,'ID']),則會調用回原始未分組數據框架res1,而不是您在group_by調用中創建的分組數據框架。這就是爲什麼它給你的總數,而不是每組數。

在dplyr管道這樣你應該只需要調用不帶引號的列名,因此這個:

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

應該工作

+0

非常感謝!這就說得通了。 – NM24

+0

如果答案回答了您的問題並解決了您的問題,則可以通過接受答案(上下箭頭下方的複選標記)來指示答案。 –