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

在R语言中为数据框多列的唯一组合创建对应索引的方法

方法1:基础R实现

不需要加载任何第三方包,直接用内置函数即可实现:

# 生成唯一组合的索引,按组合首次出现的顺序分配编号
unique_comb <- unique(df[, c("A", "B", "D")])
df$index <- match(
  paste(df$A, df$B, df$D, sep = "_"),
  paste(unique_comb$A, unique_comb$B, unique_comb$D, sep = "_")
)

也可以用更简洁的interaction函数实现:

df$index <- as.integer(interaction(df$A, df$B, df$D, lex.order = TRUE))

方法2:dplyr实现(逻辑更直观)

如果你常用tidyverse生态的工具,用分组加组ID的方式可读性更高:

library(dplyr)

df <- df %>%
  group_by(A, B, D) %>%
  mutate(index = cur_group_id()) %>%
  ungroup()

两种方法输出的结果和你给出的预期效果完全一致,相同的A/B/D组合会被分配相同的索引值,索引编号按照组合第一次出现的顺序依次递增。

内容的提问来源于stack exchange,提问作者Vinicius B. de S. Moreira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 06:06:00