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

如何仅用R基础包生成向量的无序唯一对(含相同元素组合)

R生成含自配对的无序二元唯一组合的简洁实现

核心实现方案

你可以利用组合数生成的特性,仅通过一次combn调用完成需求,无需拼接矩阵,代码更简洁:

gen <- function(n) {
  m <- combn(n + 1, 2)
  m[2, ] <- m[2, ] - 1
  # 若需要和原有实现完全一致的列顺序(先异元素组合、后自组合),保留下面这行
  m <- m[, order(m[1,] == m[2, ])]
  return(m)
}

效果验证

  • n=2时输出:
[,1] [,2] [,3]
[1,]    1    1    2
[2,]    1    2    2
  • n=3时输出:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    1    1    2    2    3
[2,]    1    2    3    2    3    3

完全符合你的输出要求。

方案优势

  • 完全基于R基础库实现,无任何额外依赖
  • 没有生成冗余数据,内存效率和你原有实现持平,同时省去了cbind、rbind的矩阵拼接开销
  • 代码逻辑更简洁,仅需2-3行核心逻辑即可完成需求,不需要额外拼接操作

内容的提问来源于stack exchange,提问作者J. Mini

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:36:02