计算R中范围内的所有可能组合

时间:2012-10-29 10:25:40

标签: r

我正在尝试生成四个变量的所有组合,其中每个变量都是0到10之间的整数。在R中有一种简单的方法吗?

X | Y | Z | W
-------------
0 | 0 | 0 | 0
1 | 0 | 0 | 0
1 | 1 | 0 | 0
1 | 1 | 1 | 0
.   .   .   .
.   .   .   .
.   .   .   .
10|10 |10 |10

2 个答案:

答案 0 :(得分:5)

如果WXYZ存在

 expand.grid(W = W, X = X, Y = Y, Z = Z) 

    W X Y Z
1   0 0 0 0
2   1 0 0 0
3   2 0 0 0
4   3 0 0 0
5   4 0 0 0
6   5 0 0 0
7   6 0 0 0
8   7 0 0 0
9   8 0 0 0
10  9 0 0 0
11 10 0 0 0
12  0 1 0 0
13  1 1 0 0
14  2 1 0 0
15  3 1 0 0
...

答案 1 :(得分:1)

所有组合都可以使用table完成。转换为数据框会产生您想要的内容。

> as.data.frame(table(W=0:10, X=0:10, Y=0:10, Z=0:10))[, c('W','X','Y','Z')]
    W X Y Z
1   0 0 0 0
2   1 0 0 0
3   2 0 0 0
4   3 0 0 0
5   4 0 0 0
6   5 0 0 0
7   6 0 0 0
8   7 0 0 0
9   8 0 0 0
10  9 0 0 0
11 10 0 0 0
12  0 1 0 0
13  1 1 0 0
...