【发布时间】:2019-04-11 21:06:01
【问题描述】:
我正在尝试在 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
.....
我如何表明这是我想要的,如果有人可以对我实际要求它做的事情提供一个简单的解释,那也会有所帮助。
【问题讨论】:
-
试试
do.call(paste, c(expand.grid(Letters, Letters), sep= " vs ")) -
也只是一些笔记。即使您采用循环方法,也不需要制作 LetDup。不过,您确实需要为两个循环使用不同的索引。目前,您使用 i 来索引两个循环。
-
通过在两个循环中使用相同的变量 i,您将始终使用第二个/内部 i 的值。 R 无法判断您何时需要外部 i 和内部 i。