如何在R中统计分组后变量的唯一值数量?
错误代码原因
你原有代码同时按gender和name两个字段分组,统计的是每个「性别+姓名」组合的出现次数,和需求不符。
实现代码
1. dplyr(tidyverse)写法
library(dplyr) by_gender <- df %>% group_by(gender) %>% summarise(unique_person_count = n_distinct(name))
运行后得到的by_gender结果如下:
| gender | unique_person_count |
|---|---|
| Female | 1 |
| Male | 2 |
| Neutral | 3 |
2. 基础R写法
无需加载第三方包即可实现:
by_gender <- aggregate(name ~ gender, df, FUN = function(x) length(unique(x))) colnames(by_gender)[2] <- "unique_person_count"
内容的提问来源于stack exchange,提问作者Essan Rago
相关产品推荐
相关产品推荐

