expand.grid 在 R 中的迭代使用
Iterative usage of expand.grid in R
我想知道是否有任何方法可以使用 expand.grid() 函数(或任何其他函数)为指定数量的序列生成所有可能的组合。后者由用户提供。
想要的结果。 例如,
expand.grid(0:1, 0:1)
Var1 Var2
1 0 0
2 1 0
3 0 1
4 1 1
expand.grid(0:1, 0:1, 0:1)
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
expand.grid(0:1, 0:1, 0:1, ...)
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 ...
. . . .
. . . .
. . . .
注意:实现不限于 0-1 序列,因此它也应该适用于 expand.grid(0:1, 0:5, 2:4, 3:5)
我的实现。我正在尝试这样的事情:
expand.grid(rep(0:1, 3))
但 R 将其解释为单个序列:
Var1
1 0
2 1
3 0
4 1
5 0
任何帮助将不胜感激!
我们可以 rep
list
然后 expand.grid
expand.grid(rep(list(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
或者另一种选择是使用 replicate
和 simplify=FALSE
到 return 一个 list
输出,然后使用 expand.grid
expand.grid(replicate(3, 0:1, simplify=FALSE))
我想知道是否有任何方法可以使用 expand.grid() 函数(或任何其他函数)为指定数量的序列生成所有可能的组合。后者由用户提供。
想要的结果。 例如,
expand.grid(0:1, 0:1)
Var1 Var2
1 0 0
2 1 0
3 0 1
4 1 1
expand.grid(0:1, 0:1, 0:1)
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
expand.grid(0:1, 0:1, 0:1, ...)
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 ...
. . . .
. . . .
. . . .
注意:实现不限于 0-1 序列,因此它也应该适用于 expand.grid(0:1, 0:5, 2:4, 3:5)
我的实现。我正在尝试这样的事情:
expand.grid(rep(0:1, 3))
但 R 将其解释为单个序列:
Var1
1 0
2 1
3 0
4 1
5 0
任何帮助将不胜感激!
我们可以 rep
list
然后 expand.grid
expand.grid(rep(list(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
或者另一种选择是使用 replicate
和 simplify=FALSE
到 return 一个 list
输出,然后使用 expand.grid
expand.grid(replicate(3, 0:1, simplify=FALSE))