将计数器添加到循环中

4

有一个关于R语言的问题:

我想在循环开始时添加一个计数器,以便在运行循环sim = 1000时使用:

if(hours$week1 > 1 and hours$week1 < 48) add 1 to the counter 
ifelse add 0

我曾经看到一些计数器教程,会打印一句话来告诉你出了什么问题(例如):

For (i in 1:1000) {
    if (i%%100==0) print(paste("No work", i)) 
}

但是我的计数器的目的是生成一个值输出,衡量循环中有多少次运行落在指定范围内。


2
尝试提供一个可复现的例子,并附上期望的输出。 - Ronak Shah
2
使用您提出的第二个循环并仅维护在循环外声明的计数器有什么问题? - Tim Biegeleisen
4个回答

3

您基本上已经做到了。您只需要a)在循环之前初始化计数器,b)在if条件中使用&而不是and,c)实际上将1添加到计数器中。由于添加0与什么也不做相同,因此您不必担心“else”。

counter = 0
for (blah in your_loop_definition) {
    ... loop code ...
    if(hours$week1 > 1 & hours$week1 < 48) {
        counter = counter + 1
    }
    ... more loop code ...
}

1
代替
if(hours$week1 > 1 & hours$week1 < 48) {
    counter = counter + 1
}

你也可以使用。
counter = counter + (hours$week1 > 1 && hours$week1 < 48)

由于R将TRUE转换为1,FALSE转换为0。

0

这个怎么样?


count = 0

for (i in 1:1000) {

  count = ifelse(i %in% 1:100, count + 1, count)

}

count

#> [1] 100

0
如果你的目标只是粗略地监控进展,并且你正在使用Rstudio,一个简单的解决方案就是刷新环境选项卡,以检查i的当前值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接