使用dplyr按区域统计唯一样本数量的实现方法
用dplyr按区域统计唯一样本数量的实现方法
首先是原始数据集:
df <- data.frame(strain = 1:6, sample = c("a24", "a24", "a24", "a26", "a26", "a27"), region = c(rep("ny", 3), rep("detroit",3)))
使用dplyr包的分组统计功能即可实现需求,核心是用n_distinct()函数统计唯一值数量:
library(dplyr) # 按region分组,统计唯一sample的数量 result <- df %>% group_by(region) %>% summarize(sample_count = n_distinct(sample)) %>% ungroup() # 可选,取消分组状态 # 查看结果 print(result)
执行后得到的结果如下:
| region | sample_count |
|---|---|
| ny | 1 |
| detroit | 2 |
代码说明
group_by(region):将数据按region字段分组,后续统计操作会基于每个分组执行summarize(sample_count = n_distinct(sample)):对每个分组,计算sample列中唯一值的个数,并将结果列命名为sample_countungroup():可选步骤,用于取消数据的分组标记,避免后续操作因分组状态产生意外行为
内容的提问来源于stack exchange,提问作者trilisser
相关产品推荐
相关产品推荐

