gpt4 book ai didi

r - 如何在 R 中使用冒号运算符编写 Java 风格的 for 循环?

转载 作者:行者123 更新时间:2023-12-04 04:54:43 26 4
gpt4 key购买 nike

我想写一个Java风格的for循环如下:

for (int i = 1; i <= 3; ++i) {
for (int j = 1; j <= i-1; ++j) {
System.out.println(i + " " + j);
}
}

运行上述代码的输出将是
2 1
3 1
3 2

我试图在 R 中对此进行编码如下:
for (i in 1:3) {
for (j in 1:(i-1)) {
print(sprintf('%d %d', i, j))
}
}

但是,运行此 R代码给出了输出
[1] "1 1"
[1] "1 0"
[1] "2 1"
[1] "3 1"
[1] "3 2"

我意识到这是因为 1:0 = c(1,0) .
使用 seq(1,0)也不起作用,因为 seq(1,0) = c(1,0) .
这两个的正确写法是什么 for循环?

最佳答案

您可以更换内部forwhile :

for (i in 1:3) {
j <- 1
while (j < i) {
print(sprintf('%d %d', i, j))
j <- j + 1
}
}

假设 Java 的 for与 C 类似,从语义上讲,这基本上也是发生在那里的事情。

关于r - 如何在 R 中使用冒号运算符编写 Java 风格的 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16922104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com