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

如何在R中分组处理重复数据并修改组内count字段值

解决方法

方法一:Base R(用ave()函数)

aggregate()更适合分组汇总,要保留原数据行并修改分组内的序号,用ave()更直接。代码如下:

# 构造原始数据
mydf <- data.frame(
  name = c("dave", "john", "steve", "dave", "harry", "harry", "will"),
  id = c(128, 123, 111, 128, 130, 130, 11),
  count = rep(1, 7)
)

# 按name和id分组,给每组内的行分配连续序号
mydf$count <- ave(mydf$count, mydf$name, mydf$id, FUN = seq_along)

# 查看结果
mydf

运行后会直接生成你需要的mydf_final效果,ave()会对name+id的每个分组应用seq_along函数,生成从1开始的连续序号,替换原有的count值。

方法二:tidyverse(dplyr)

如果习惯tidyverse语法,也可以用以下方式实现:

library(dplyr)

mydf_final <- mydf %>%
  group_by(name, id) %>%
  mutate(count = row_number()) %>%
  ungroup()

row_number()会在每个分组内生成行号,和seq_along的效果完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:27:05