如果我想列出所有组合,我可以使用嵌套循环:
for (int i = 1; i <= 5; i++) {
for (int j = i + 1; j <= 5; j++) {
System.out.println("Comparing " + i + " and " + j);
}
}
我如何在R中实现相同的功能?我认为我没有正确理解R中循环的语法,因为这不起作用(j继续增加到5以上)。
for (i in 1:5) {
for (j in i+1:5) {
...
}
}
答案 0 :(得分:3)
如果您想要在打印之外做任何事情,这可能很有用:
X <- expand.grid(i = 1:5,
j = 1:5)
X <- X[X$i <= X$j, ]
答案 1 :(得分:1)
问题在于操作顺序,+运算符在:运算符之前计算。试试这个。
for (i in 1:5) {
for (j in i+(1:5)) {
cat(paste0("i:", i, "; j: ", j, "\n"))
}
}
#> i:1; j: 2
#> i:1; j: 3
#> i:1; j: 4
#> i:1; j: 5
#> i:1; j: 6
#> i:2; j: 3
#> i:2; j: 4
#> i:2; j: 5
#> i:2; j: 6
#> i:2; j: 7
#> i:3; j: 4
#> i:3; j: 5
#> i:3; j: 6
#> i:3; j: 7
#> i:3; j: 8
#> i:4; j: 5
#> i:4; j: 6
#> i:4; j: 7
#> i:4; j: 8
#> i:4; j: 9
#> i:5; j: 6
#> i:5; j: 7
#> i:5; j: 8
#> i:5; j: 9
#> i:5; j: 10