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_along
或 1: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
#...
#...
我正在尝试编写一个嵌套的 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_along
或 1: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
#...
#...