在 R 中生成不重复的组合对

Posted

技术标签:

【中文标题】在 R 中生成不重复的组合对【英文标题】:Generating non-duplicate combination pairs in R 【发布时间】:2010-12-15 04:25:42 【问题描述】:

很抱歉标题没有描述性,但我不知道是否有一个词可以说明我想要实现的目标。

假设我有一个不同类的名称列表,例如

c( '1', '2', '3', '4')

我想从中生成所有可能的排列对,这样就不会有反向重复。所以我想要的是类似的东西

'1' '2'
'1' '3'
'1' '4'
'2' '3'
'2' '4'
'3' '4'

请注意,我没有例如'2' '1' 因为我已经有了'1' '2'。有没有一种简单的方法可以在 R 中实现这一点?

【问题讨论】:

【参考方案1】:
> x<-c('1','2','3','4')
> combn(x,2)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,] "1"  "1"  "1"  "2"  "2"  "3" 
[2,] "2"  "3"  "4"  "3"  "4"  "4"

【讨论】:

看起来又好又简单。我认为有这样的事情是对的。谢谢。

以上是关于在 R 中生成不重复的组合对的主要内容,如果未能解决你的问题,请参考以下文章

R从n个元素的字符向量中生成大小为m的所有可能组合[重复]

在目标c中生成组合的有效方法[重复]

从给定的单词列表中生成具有“N”长度的所有可能组合(寻找不重复)

需要在R中生成5000个手段[重复]

R在数据框中生成非重复对,避免相同的组成员

快速的独特组合(来自有重复的列表),无需查找