2

R で Mathematica の Tuples[list, n] の動作を再現したいと考えています。たとえば、

Tuples[{0, 1}, 3] = 
{{0, 0, 0}, {0, 0, 1}, {0, 1, 0}, {0, 1, 1}, {1, 0, 0}, 
{1, 0, 1}, {1, 1, 0}, {1, 1, 1}}. 

R では、次の結果が必要です。

tuples(c(0,1), 3) = list( c(0, 0, 0), c(0, 0, 1), c(0, 1, 0), 
c(0, 1, 1), c(1, 0, 0), c(1, 0, 1), c(1, 1, 0), c(1, 1, 1) ) 

またはこれに似たもので、サブリスト c(0,0,0) などを抽出できます。

これに対するコマンドはありますか?または、これをどのようにプログラムできますか?前もって感謝します。

4

2 に答える 2

2

1 つの方法を次に示します。

tuples <- function(x, n) do.call(expand.grid, rep(list(x), n))

tuples(0:1, 3)
#   Var1 Var2 Var3
# 1    0    0    0
# 2    1    0    0
# 3    0    1    0
# 4    1    1    0
# 5    0    0    1
# 6    1    0    1
# 7    0    1    1
# 8    1    1    1

すべての要素の長さが同じであるため、マトリックスまたは data.frame として保持する方が理にかなっていると思います。

于 2012-04-25T05:06:34.683 に答える