For-Loop中的For-Loop似乎会跳过迭代(r)

时间:2019-04-11 21:06:01

标签: r for-loop

我正在尝试在for循环中运行for循环,但是它的行为不符合我的预期。我希望它可以循环遍历“内部”循环中的元素,然后交换到“外部”循环中的下一个元素并重复。

例如

Letters = c('AA', 'BB', 'CC', 'DD')

for(i in 1:length(Letters)) {

  LetDup <- Letters

  for(i in 1:length(LetDup)) {

    Combined <- paste0(Letters[i], ' vs ', LetDup[i])

    print(Combined)

  }
}

我期望得到

AA vs AA
AA vs BB
AA vs CC
AA vs DD
BB vs AA 
BB vs BB
.....

我该如何表明这就是我想要的,如果有人可以对我实际要求它做的事情提供简单的解释,那也会有所帮助。

2 个答案:

答案 0 :(得分:1)

如果您坚持使用循环,请使用@Dason的注释并执行以下操作:

for(i in 1:length(Letters)) {
  for(j in 1:length(Letters)) {
    Combined <- paste0(Letters[i], ' vs ', Letters[j])
    print(Combined)
    }
}

答案 1 :(得分:0)

我们可以使用expand.gridCJ(来自data.table),然后执行paste

library(data.table)
CJ(Letters, Letters)[, paste(V1, 'vs', V2)]