You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言dplyr分组汇总计算唯一组合、去重均值与总时长

R多列分组计算唯一个体指标实现方案

核心问题

需按country、state、date三列分组,同时计算三类指标,原有代码仅能正确计算唯一组合数、duration总和,无法正确计算唯一个体的平均权重:

  • 唯一household_id-individual_id组合总数量
  • 唯一个体对应的weights平均值:同户同个体重复出现时仅取1次权重参与计算
  • duration列总和:所有行的duration均需累加,不得因个体重复剔除对应行的duration

注意:直接对全表先去重再汇总的方案会丢失重复个体行的duration值,导致总时长计算错误;直接对weights列取unique计算会把不同个体的相同权重误去重,均值结果失真。

可运行正确代码

基于dplyr实现,在分组内部单独对个体维度去重计算权重均值,不干扰全量行的duration求和逻辑:

library(dplyr)

result <- data %>% 
  group_by(country, state, date) %>% 
  summarise(
    # 计算唯一个体组合数
    total_unique = n_distinct(household_id, individual_id),
    # 分组内对唯一个体去重后取权重均值
    Average_weights = cur_data() %>% 
      distinct(household_id, individual_id, .keep_all = TRUE) %>% 
      pull(weights) %>% 
      mean(),
    # 全量行累加duration
    Tot_Duration = sum(duration),
    # 汇总后解除分组,避免后续操作受分组影响
    .groups = "drop"
  )

样例数据验证结果

用提供的测试数据集运行代码,输出结果完全符合预期:

  • US-TX-20220601分组:total_unique=5,Average_weights=150,Tot_Duration=210
  • IND-AP-20220601分组:total_unique=1,Average_weights=100,Tot_Duration=150

内容的提问来源于stack exchange,提问作者joy_1379

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 02:42:28