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

R语言按id分组取每组首个type='y'的count值新建newcount列

R实现分组新增匹配值列的方案

方案1:dplyr包实现(tidyverse生态常用,代码易读)

这是最简便的实现方式,逻辑直接对应需求描述:

# 加载dplyr包,未安装先运行 install.packages("dplyr")
library(dplyr)

df <- df %>%
  # 按id字段分组
  group_by(id) %>%
  # 每组取第一个type为'y'的行对应的count值赋值给全组newcount
  mutate(newcount = first(count[type == "y"])) %>%
  # 操作完成后取消分组,避免影响后续数据处理
  ungroup()

方案2:基础R实现(无需安装第三方包)

适合不想依赖第三方包的场景:

# 按id拆分数据框处理后再合并
df_split <- split(df, df$id)
df <- unsplit(lapply(df_split, function(sub_df) {
  sub_df$newcount <- sub_df$count[sub_df$type == "y"][1]
  return(sub_df)
}), df$id)

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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:45:02