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

R语言按id分组后统计组内出生年份重复次数的实现咨询

实现方案

方案1:tidyverse 实现

适合习惯dplyr语法的场景,20万行数据运行无压力:

library(tidyverse)

df_result <- df %>%
  group_by(id) %>%
  mutate(n = {
    # 统计当前id下各出生年份的出现次数
    year_count <- table(birth_year)
    # 取最大出现次数,若最大值为1说明所有年份唯一,返回0
    max_count <- max(year_count)
    ifelse(max_count == 1, 0, max_count)
  }) %>%
  ungroup()

方案2:data.table 实现

针对大数据量优化,运行速度更快,更适合10万行以上的数据集:

library(data.table)

# 转换为data.table格式
setDT(df)
# 先统计每个id+年份组合的出现次数,再按id取最大次数做判断
df[, cnt := .N, by = .(id, birth_year)][
  , n := fifelse(max(cnt) == 1, 0, max(cnt)), by = id
][, cnt := NULL] # 删除临时计数列

两种方案运行后得到的结果和你给出的预期输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:24:03