我正在尝试计算日平均气温持续下降的最大天数。 所以, 首先, 我试图计算每日气温持续下降的天数。之后我会找到这些值的最大数量。问题是 while 循环只计算连续减少的前五天并停止,因为条件为假。我怎样才能继续使用其余的值?或者有更简单的方法可以通过 apply family 做到这一点?
a=
dfmean[,4]i=1 x=0
while(a[i+1,]<a[i,]) {
x=x+1
打印(x)
我=我+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