得到长度为N的所有组合

时间:2014-06-05 14:34:03

标签: r combinations

我正在寻找一种简单的方法来获得M中长度N的所有可能的独特组合。

这是一个简单的例子:

M <- c( 1, 2, 3, 4, 5 )
N <- 2

预期产出:

1, 2
1, 3 
1, 4
1, 5
2, 3
2, 4
2, 5
3, 4
3, 5
4, 5

2 个答案:

答案 0 :(得分:6)

使用combn功能

> n <- 1:5
> combn(n, 2)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    1    1    1    1    2    2    2    3    3     4
[2,]    2    3    4    5    3    4    5    4    5     5

答案 1 :(得分:0)

这与@ jdharrison的例子相同。

combnPrim快速移交.C的速度要快得多,但显然这对于​​只需要一个小组合的例子来说太过分了。

library(gRbase)
### the following dependencies may be necessary, install as follows:
### source("http://bioconductor.org/biocLite.R")
### biocLite("graph")
### biocLite("BiocGenerics")
### biocLite("RBGL")
gRbase::combnPrim(seq(5), 2)