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

问题描述 投票:0回答:1

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

我正在尝试计算日平均气温持续下降的最大天数。 所以, 首先, 我试图计算每日气温持续下降的天数。之后我会找到这些值的最大数量。问题是 while 循环只计算连续减少的前五天并停止,因为条件为假。我怎样才能继续使用其余的值?或者有更简单的方法可以通过 apply family 做到这一点?

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

}`

r dataframe while-loop conditional-statements apply
1个回答
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

diff
rle

获得连续递减值的最大数量
df_rle <- rle(diff(df$temp_mean) < 0)

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

© www.soinside.com 2019 - 2024. All rights reserved.