【发布时间】:2015-03-17 19:53:37
【问题描述】:
在 R 中,是否有一个函数可以返回 n 个元素的所有可能排序? 我想要一个n!通过 n 矩阵,使得每一行包含 n 个元素的所有可能的排序索引。也就是说,如果 n = 3,我想要:
1,2,3
1,3,2,
2,1,3,
2,3,1,
3,1,2,
3,2,1
我首先认为 expand.grid 可以完成这项工作,然后尝试:
n <- 3
expand.grid(rep(list(1:n),n))
Var1 Var2 Var3
1 1 1 1
2 2 1 1
3 3 1 1
4 1 2 1
5 2 2 1
6 3 2 1
7 1 3 1
8 2 3 1
9 3 3 1
10 1 1 2
11 2 1 2
12 3 1 2
13 1 2 2
14 2 2 2
15 3 2 2
16 1 3 2
17 2 3 2
18 3 3 2
19 1 1 3
20 2 1 3
21 3 1 3
22 1 2 3
23 2 2 3
24 3 2 3
25 1 3 3
26 2 3 3
27 3 3 3
但这会返回 3^3 x 3 矩阵,每行可能包含重复值...
【问题讨论】:
标签: r combinations combinatorics