我正在尝试在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
.....
我该如何表明这就是我想要的,如果有人可以对我实际要求它做的事情提供简单的解释,那也会有所帮助。
答案 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.grid
或CJ
(来自data.table
),然后执行paste
library(data.table)
CJ(Letters, Letters)[, paste(V1, 'vs', V2)]