功能
permutations(n)
来自包e1071
的返回一个矩阵,其中包含整数1:n的所有排列(每行一个排列)。例如:
> permutations(3)
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 2 1 3
[3,] 2 3 1
[4,] 1 3 2
[5,] 3 1 2
[6,] 3 2 1
术语置换的较弱含义表示那些有序排列,其中没有元素出现不止一次,但不要求使用给定集合中的所有元素。我特别考虑了从给定的大小为n的集合中得到的固定长度为k的元素的排列,换句话说:n的k-排列。
如何获得包含整数1:n(每行一个排列)的所有k-排列的矩阵?
答案 0 :(得分:3)
来自permutations
的函数gtools
比来自e1071
的函数更精细,因为它有其他参数以及r,v等。
对于您的情况,您可以使用
library(gtools)
gtools::permutations(n,k)
编辑:此函数permutations
来自gtools
包,正如@jaySf指出
添加gtools::permutations(3,2)
permutations(3,2)
[,1] [,2]
[1,] 1 2
[2,] 1 3
[3,] 2 1
[4,] 2 3
[5,] 3 1
[6,] 3 2
答案 1 :(得分:2)
我推荐arrangements
套餐。在some benchmarks之后,我们得出结论非常好。
> library(arrangements)
> permutations(3,2)
[,1] [,2]
[1,] 1 2
[2,] 1 3
[3,] 2 1
[4,] 2 3
[5,] 3 1
[6,] 3 2