在R中的每个外部循环迭代中打印j

Aka*_*all 7 r

对于以下代码:我无法弄清楚为什么j不在每个外部循环迭代上打印.

x = 0

for (j in 1:15)
{
for (i in 1:100000)
{
x = x + 1
}
print(j)
}
Run Code Online (Sandbox Code Playgroud)

R似乎正在做的是运行整个事情,最后打印出所有js,而不是逐个打开每个循环.

似乎j应该在每次循环迭代后打印,我在这里缺少什么?

有没有办法让它j在每次外部循环迭代中打印出来?

谢谢

Jos*_*ien 14

我猜你正在使用Windows Rgui,它缓冲了它的控制台输出,然后以块的形式写出来(参见R Windows FAQ 7.1).要强制立即打印到控制台,您只需flush.console()print()语句后添加一个调用即可.

x = 0

for (j in 1:15) {
    for (i in 1:100000) {
        x = x + 1
    }
    print(j)
    flush.console()
}
Run Code Online (Sandbox Code Playgroud)


Nic*_*bbe 5

R输出通常是缓冲的.你可以通过两种方式规避这一点.或者(仅适用于Windows,IIRC),你可以去看一下R桂的菜单,并选择杂项- >缓冲输出(或按Ctrl-W)来禁用缓存(通常会减慢执行),或者您可以拨打flush.console()任何时间你想确保实际显示输出(例如显示进度).