2012-10-29 29 views
1

我試圖生成四個變量的所有組合,其中每個變量是0和10之間的整數。有沒有一種簡單的方法在R中做到這一點?計算在一個範圍內的所有可能的組合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 

回答

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 
... 
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 
... 
+0

的確非常優雅! – krlmlr