R 中的嵌套 for 循环使得第二个索引 = 第一个索引 + 1

Nested for loops in R such that index of the 2nd = index of the 1st + 1

我正在尝试编写一个嵌套的 for 循环(i 索引第一个循环,j 索引第二个循环),这样 j 从 i + 1 开始并以特定值(向量的最后一个值)结束。特别是:

vettore = 1 : 10

for (i in vettore) {
  j = i + 1
  for (j in vettore) {
    cat("i: ", i)
    cat("j: ", j, "\n")
    }
}

我需要以下行为。

第一个循环的第 1 次迭代:i = 1,j = 2 直到 j = 10

第一个循环的第 2 次迭代:i = 2,j = 3 直到 j = 10

等等。我该怎么做?

第二个循环应该从 j 开始,但在您的代码中,对于 vettore 的每个值,它仍然是 运行。此外,最好使用 seq_along1:length(vettore) 而不是 for (i in vettore)

这是修复它的方法。

vettore = 1 : 10

for (i in seq_along(vettore)) {
  j = i + 1
  for (k in j:length(vettore)) {
    cat("i: ", i)
    cat("\tj: ", k, "\n")
  }
}

#i:  1  j:  2 
#i:  1  j:  3 
#i:  1  j:  4 
#i:  1  j:  5 
#i:  1  j:  6 
#i:  1  j:  7 
#i:  1  j:  8 
#i:  1  j:  9 
#i:  1  j:  10 
#i:  2  j:  3 
#i:  2  j:  4 
#i:  2  j:  5 
#...
#...