r语言 - 创建增强因子设计的算法组合帮助



我正在尝试创建一种算法,该算法将创建在 2^k 因子设计中添加两个游程的所有可能组合。我见过很多组合的例子,但没有一个真正解决这个具体问题。此算法的结果应该是 k 列数和 (2^k 选择 1) + (2^k 选择 2) + 1 行数的矩阵,以给出 2 个组合的正确数量。因此,对于 2^2 设计,我们将有 2 列和 11 行 (4 + 6 + 1) 我在下面设计了这个矩阵只是为了展示它应该是什么样子。其中每对行 (1,2) (2,3) (3,4) 等应该是不同的不同(我知道现在不是)。这不需要超级高效或特定语言,但更喜欢 R,我只需要弄清楚可以使用哪种方法来执行此操作

Run   A   B
 1   -1  -1
 2   -1  -1
 3    1  -1
 4    1  -1
 5   -1   1
 6   -1   1
 7    1   1
 8    1   1
 9   -1  -1
10   -1   1
11    1   1

因此,在尝试以最有效的方式执行此操作(仅比组合总数多一行)并失败之后。我决定采用一种方法,该方法将以行(1&2),(3&4)等是两种不同组合的格式生成所有组合。如果有人感兴趣,这是 R 中的代码

numFactors <- 2
org <- gen.factorial(2,numFactors)
orgRow <- nrow(org)
x <- c(seq(1,orgRow))
z <- (x*2)
numARow <- sum(z) ##Double the total combinations
aug <- matrix(data = NA, nrow = numARow, ncol = numFactors)
j <- 1
k <- 1
output <- list()
for (i in 1:(numARow/2)) { ##This wil create all possible 2 combinations in the style of 1&2,3&4...
  l <- (2*i) - 1  ## 1, 3, 5 ....
  first <- org[j,]
  if (k != j) {
    second <- org[k,]
    k <- k +1
  }
  if (k == j) {
    second <- org[k,]
    k <- k +1
  }
  output[[i]] <- rbind(first,second)
  if (k == (orgRow+1)) {
    j <- j + 1
    k <- j
        }
}

最新更新