条件为 False 后如何继续 while 循环?

how can i continue a while loop after the condition is False?

提问人:nick 提问时间:4/23/2023 最后编辑:vimuthnick 更新时间:4/24/2023 访问量:38

问:

image of a single column of a dataframe (a = dfmean[,4] )

我正在尝试计算每日平均温度持续下降的最大天数。 所以,首先,我试图计算日温度持续下降的天数。之后,我将找到这些值的最大数量。问题在于,while loop 仅计算连续递减的前五天并停止,因为条件为 false。如何继续使用其余值?或者有一种更简单的方法可以用应用家庭来做到这一点?

a= dfmean[,4]while x=x+1 打印(x) i=i+1'i=1 x=0(a[i+1,]<a[i,]) {

}`

R DataFrame While-loop 条件语句 适用

评论


答:

1赞 Andre Wildberg 4/23/2023 #1

如果这是您的数据

set.seed(42)
df <- data.frame(Date = seq(as.Date("2022-02-01"), as.Date("2022-02-10"), 1), 
                 temp_mean = runif(10) * 10)

df
         Date temp_mean
1  2022-02-01  9.148060
2  2022-02-02  9.370754
3  2022-02-03  2.861395
4  2022-02-04  8.304476
5  2022-02-05  6.417455
6  2022-02-06  5.190959
7  2022-02-07  7.365883
8  2022-02-08  1.346666
9  2022-02-09  6.569923
10 2022-02-10  7.050648

使用 和 获取最大连续递减值数diffrle

df_rle <- rle(diff(df$temp_mean) < 0)

max(df_rle$lengths[df_rle$values], na.rm = T)
[1] 2