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

在R的data.table中基于ID、N列生成Code列的唯一两两组合

R data.table分组生成两两组合并保留分组列的实现方法

首先确保已加载data.table包,具体实现步骤如下:

步骤1:构造示例数据

library(data.table)
dt <- data.table(
  ID = c("1","1","1","2","2"),
  Code = c("A","B","C","B","C"),
  N = c("3","3","3","2","2")
)

步骤2:核心计算逻辑

利用data.table的分组语法,按ID和N列分组后,在每个分组内对Code列生成两两无序组合,自动保留分组列信息:

result <- dt[, .(Combinations = combn(Code, 2, paste, collapse = ".")), by = .(ID, N)]

结果说明

运行后得到的输出结构如下,完全匹配要求的三列格式:

> result
   ID N Combinations
1:  1 3          A.B
2:  1 3          A.C
3:  1 3          B.C
4:  2 2          B.C

如果需要调整组合的拼接顺序,比如要得到C.A而非A.C,或是要生成有序排列(同时保留A.B和B.A),可以调整combn的输出逻辑,或者替换为排列生成函数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:27:03