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

R语言如何为数据框重复行分组添加1:n的duplicateID序列编号

实现方案

方法1:dplyr(tidyverse生态)实现

直接按数据框所有列分组后生成组内行序号即可,代码如下:

# 加载依赖包
library(dplyr)

# 生成duplicateID列
df2 <- df1 %>%
  group_by(across(everything())) %>%
  mutate(duplicateID = row_number()) %>%
  ungroup()

说明:如果你使用的是1.0.0版本以下的dplyr,可将group_by(across(everything()))替换为group_by_all(),运行效果完全一致。

方法2:Base R实现(无需安装额外包)

使用interaction生成全列匹配的分组标识,再用ave生成分组内序号:

df1$duplicateID <- ave(
  x = rep(1, nrow(df1)),
  GROUP = interaction(df1, drop = TRUE),
  FUN = seq_along
)

运行以上两种方法任意一种,得到的结果都和你示例中预期的df2完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:24:04