示例:如 R 中的二叉树遍历
Sample: like Binary Tree Traversal in R
我有 7 对变量:即
["F1", "R1"] ["F2", "R2"]["F3", "R3"]["F4", "R4"]["F5", "R5"]["F6", "R6"]["F7", "R7"]
并且想要生成 7 个变量的向量,其中每个变量都是从每个组中采样的。
目的是生成一个遍历向量序列(在这种情况下,将是 2^7 = 128
种可能性。
预期结果:
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 'F1' 'F2' 'F3' 'F4' 'F5' 'F6' 'F7'
[2,] 'F1' 'F2' 'F3' 'F4' 'F5' 'F6' 'R7'
[3,] 'F1' 'F2' 'F3' 'F4' 'F5' 'R6' 'F7'
[4,] 'F1' 'F2' 'F3' 'F4' 'F5' 'R6' 'R7'
[5,] 'F1' 'F2' 'F3' 'F4' 'R5' 'F6' 'F7'
[6,] 'F1' 'F2' 'F3' 'F4' 'R5' 'F6' 'R7'
...
您可以用单个 for
循环填充 matrix
。您只需遍历每一列并通过使用 rep
函数重复对来填充它们。我已经对代码进行了参数化,以便对的数量可以变化:
pairs <- list(c("F1", "R1"), c("F2", "R2"), c("F3", "R3"), c("F4", "R4"),
c("F5", "R5"), c("F6", "R6"), c("F7", "R7"))
dimension <- 7
mat <- matrix(0,2^dimension, dimension)
for(i in 1:dimension){
mat[,i] <- rep(pairs[[i]], each= 2^(dimension-i))
}
我有 7 对变量:即
["F1", "R1"] ["F2", "R2"]["F3", "R3"]["F4", "R4"]["F5", "R5"]["F6", "R6"]["F7", "R7"]
并且想要生成 7 个变量的向量,其中每个变量都是从每个组中采样的。
目的是生成一个遍历向量序列(在这种情况下,将是 2^7 = 128
种可能性。
预期结果:
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 'F1' 'F2' 'F3' 'F4' 'F5' 'F6' 'F7'
[2,] 'F1' 'F2' 'F3' 'F4' 'F5' 'F6' 'R7'
[3,] 'F1' 'F2' 'F3' 'F4' 'F5' 'R6' 'F7'
[4,] 'F1' 'F2' 'F3' 'F4' 'F5' 'R6' 'R7'
[5,] 'F1' 'F2' 'F3' 'F4' 'R5' 'F6' 'F7'
[6,] 'F1' 'F2' 'F3' 'F4' 'R5' 'F6' 'R7'
...
您可以用单个 for
循环填充 matrix
。您只需遍历每一列并通过使用 rep
函数重复对来填充它们。我已经对代码进行了参数化,以便对的数量可以变化:
pairs <- list(c("F1", "R1"), c("F2", "R2"), c("F3", "R3"), c("F4", "R4"),
c("F5", "R5"), c("F6", "R6"), c("F7", "R7"))
dimension <- 7
mat <- matrix(0,2^dimension, dimension)
for(i in 1:dimension){
mat[,i] <- rep(pairs[[i]], each= 2^(dimension-i))
}