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

如何为R数据框按name列分组分配唯一标识符?

实现按name分组分配唯一标识符的方法

有两种简洁的方式可以用dplyr完成你的需求:

方法1:创建映射表后合并

先把唯一的name和预先生成的identifier做成匹配表,再通过关联合并把标识符附加到原数据框:

library(dplyr)
library(ids)

# 原数据框
topic <- c('topic1', 'topic2', 'topic3', 'topic4', 'topic5', 'topic6')
name <- c('name1', 'name1', 'name1', 'name2', 'name3', 'name3')
data <- data.frame(topic, name)

# 生成对应数量的随机标识符
identifier <- random_id(n_distinct(data$name), 3)

# 构建name与标识符的映射关系
name_id_map <- tibble(name = unique(data$name), identifier = identifier)

# 合并到原数据
data_with_id <- data %>% 
  left_join(name_id_map, by = "name")

方法2:分组后直接分配

利用dplyr的分组功能,通过cur_group_id()获取分组序号,直接匹配预先生成的标识符:

data_with_id <- data %>% 
  group_by(name) %>% 
  mutate(identifier = identifier[cur_group_id()]) %>% 
  ungroup()

目标输出示例

运行后会得到如下结构的数据(标识符为random_id生成的随机字符串):

topic  name identifier
1 topic1 name1  7sF-9kL
2 topic2 name1  7sF-9kL
3 topic3 name1  7sF-9kL
4 topic4 name2  2pQ-5mR
5 topic5 name3  8xZ-1bC
6 topic6 name3  8xZ-1bC

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 02:03:18