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

R语言如何排除调研数据中的重复ID用户进行统计计算

问题1:计算无重复加权的用户平均年龄

前提假设:同一id对应的用户age字段无冲突,若存在跨年度调研导致年龄更新,可优先取首次/最新调研的年龄值计算。

  • Base R实现:
# 按id去重,保留每个用户唯一的一条记录
unique_user_df <- df[!duplicated(df$id), ]
# 计算平均年龄
mean(unique_user_df$age)
  • dplyr实现:
library(dplyr)
# 按id去重后提取年龄求均值,如需按时间取最早/最晚记录可先对date排序
df %>% 
  distinct(id, .keep_all = TRUE) %>% 
  pull(age) %>% 
  mean()
问题2:统计各参与次数对应的用户数量
  • Base R实现:
# 统计每个id的参与次数
user_participate_times <- table(df$id)
# 统计各参与次数对应的用户数,转成结构化表格
result_table <- as.data.frame(table(user_participate_times), col.names = c("参与次数", "用户数"))
  • dplyr实现:
library(dplyr)
result_table <- df %>% 
  # 按用户id分组统计参与次数
  group_by(id) %>% 
  summarise(participate_times = n()) %>% 
  # 按参与次数分组统计对应用户数
  group_by(participate_times) %>% 
  summarise(用户数 = n()) %>% 
  # 可选:补全1-10次所有档位,无用户的档位用户数填0
  tidyr::complete(participate_times = 1:10, fill = list(用户数 = 0))

输出的result_table即为所需的参与次数与对应用户数的统计表格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:30:01