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

如何在R中为数据表内的重复值按出现顺序标注出现序号

R标注姓名出现次序实现方法

你需要给名为People的数据集的全名列旁新增重复次序列,多次出现的姓名按出现顺序标注1、2、3……,仅出现一次的姓名对应次序列留空,可通过以下两种常用方法实现:

方法1:基础R实现

无需安装额外依赖,直接运行以下代码即可:

# 按全名列分组计算组内次序,仅出现1次的返回空值
People$`Number of repetition` <- ave(rep(1, nrow(People)), 
                                     People$`Full name`, 
                                     FUN = function(x) {
                                       if(length(x) == 1) return(NA)
                                       seq_along(x)
                                     })
# 将NA转换为空白,匹配示例输出效果
People$`Number of repetition`[is.na(People$`Number of repetition`)] <- ""

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

写法更简洁易读,适合日常数据处理场景:

library(dplyr)
People <- People %>%
  # 按全名列分组
  group_by(`Full name`) %>%
  # 组内行数为1时填空,否则填组内出现次序
  mutate(`Number of repetition` = ifelse(n() == 1, "", row_number())) %>%
  # 取消分组,避免后续操作受分组影响
  ungroup()

注意:如果你的全名列实际列名不是Full name,请将代码中对应字段替换为你的实际列名。

运行上述任意代码后,输出的数据集结构和你给出的示例效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:42:00