有没有一种有效的方法来计算重复指定值的向量部分的长度?例如,我想计算沿着每日降雨量值向量的无雨期的长度:
daily_rainfall=c(15, 2, 0, 0, 0, 3, 3, 0, 0, 10)
Run Code Online (Sandbox Code Playgroud)
除了使用循环遍历向量的明显但笨重的方法之外,我可以通过哪种更清晰的方式获得所需的答案
rainless_period_length=c(3, 2)
Run Code Online (Sandbox Code Playgroud)
鉴于上面的矢量?
R具有内置函数"游程编码":
daily_rainfall <- c(15, 2, 0, 0, 0, 3, 3, 0, 0, 10)
runs <- rle(daily_rainfall)
rainless_period_length <- runs$lengths[runs$values == 0]
rainless_period_length
Run Code Online (Sandbox Code Playgroud)
输出:
[1] 3 2
Run Code Online (Sandbox Code Playgroud)