R语言基于数据框分组统计另一列组内及组间公共值的实现方法
R实现代码
我们使用tidyverse的dplyr工具完成分组统计,实现代码如下:
# 加载依赖包 library(tidyverse) # 构造原始数据框 df <- tibble( id = c("ls1","ls1","ls1","ls2","ls2","ls3","ls5","ls5","ls10","ls10","ls14"), target = c("A","A","B","G","H","A","B","B","G","HA","B") ) # 按需求统计指标 res <- df %>% # 计算组内维度指标:按id+target分组统计出现次数 group_by(id, target) %>% mutate( numberofRepwithinGroup = n(), withinGroup = numberofRepwithinGroup >= 2 ) %>% ungroup() %>% # 计算组间维度指标:按target分组统计跨id出现情况 group_by(target) %>% mutate( numberofRepbetweenGroups = ifelse(n_distinct(id) == 1, 0, n_distinct(id)), betweenGroups = numberofRepbetweenGroups > 0 ) %>% ungroup()
运行后得到的res与你给出的预期结果完全一致。
内容的提问来源于stack exchange,提问作者minoo
相关产品推荐
相关产品推荐

