我运行此命令以获取res1数据集中按年龄组划分的不同成员数。但是,计数未分组,您在下面看到的计数是整个数据集。我不知道我哪里出错了。有人可以帮我这个吗?谢谢!
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 :(得分:1)
当您使用管道操作员%>%
时,它会将操作员左侧的内容作为操作员右侧功能的第一个输入。当您从group_by
语句管道传递到汇总语句时,会有一个隐藏的未命名分组数据帧。但是,当您将Count
定义为n_distinct(res1[,'ID'])
时,您将回复原始未分组的data.frame res1
,而不是您在{{1}中创建的分组data.frame调用。这就是为什么它给你的总数,而不是每组的数量。
在像这样的dplyr管道中,你应该只调用不带引号的列名,所以这个:
group_by
应该有效