假设我有一些人口统计数据
demographic.data <- data.frame(nation=c('us', 'us', 'us', 'us', 'us', 'china', 'china', 'china'),
religion=c('christ', 'budhist', 'christ', 'jew', 'jew', 'christ', 'budhist', 'budhist'))
# nation religion
#1 us christ
#2 us budhist
#3 us christ
#4 us jew
#5 us jew
#6 china christ
#7 china budhist
#8 china budhist
我想计算每个国家宗教的A质量函数。所以我
能够
做一些像
group_by()
然后由一群
sum()
S.
religion.distributions <- demographic.data %>%
group_by(nation) %>%
summarise(n = n(),
christ = sum(religion == 'christ'),
jew = sum(religion == 'jew'),
budhist = sum(religion == 'budhist'))
# nation n christ jew budhist
#
#1 china 3 1 0 2
#2 us 5 2 2 1
虽然这对这些数据产生了正确的结果,但问题是我必须硬编码我想总结的宗教。如果数据中出现任何新的宗教,这将是一个问题。
有没有办法
自动
在每一组中,每种宗教的计数都有列吗?它应该能够查看
religion
列并开始计数。使用
dplyr
管道将是最优雅的。