R语言中的combn()函数用于生成x中取m个元素的所有组合
用法: combn(x, m, FUN, simplify)
- x为要取组合的对象,为一个vector
- m为要取出的数量
- FUN为对取出的每个组合之行的函数,默认为NULL,即不执行
- simplify为是否简单化输出,默认为T,输出的是data frame;若为F,输出的是list
举例:生成1,2,3,4,5中任取3个数的所有组合
> combn(1:5,3)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 1 1 1 1 1 2 2 2 3
[2,] 2 2 2 3 3 4 3 3 4 4
[3,] 3 4 5 4 5 5 4 5 5 5
> combn(1:5,3,simplify = F)
[[1]]
[1] 1 2 3
[[2]]
[1] 1 2 4
[[3]]
[1] 1 2 5
[[4]]
[1] 1 3 4
[[5]]
[1] 1 3 5
[[6]]
[1] 1 4 5
[[7]]
[1] 2 3 4
[[8]]
[1] 2 3 5
[[9]]
[1] 2 4 5
[[10]]
[1] 3 4 5
> combn(1:5,3,FUN = mean)
[1] 2.000000 2.333333 2.666667 2.666667 3.000000 3.333333 3.000000 3.333333 3.666667 4.000000