【问题标题】:Calculate length of repeats along a vector in r计算r中沿向量的重复长度
【发布时间】:2018-12-06 22:26:08
【问题描述】:

有没有一种有效的方法来计算向量中重复指定值的部分的长度? 例如,我想沿着每日降雨量值的向量计算无雨期的长度:

daily_rainfall=c(15, 2, 0, 0, 0, 3, 3, 0, 0, 10)

除了使用循环向量的明显但笨拙的方法之外,我还能用什么更简洁的方法来获得所需的答案

rainless_period_length=c(3, 2)

给定上面的向量?

【问题讨论】:

标签: r


【解决方案1】:

R 有一个内置函数rle: "run-length encoding":

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

输出:

[1] 3 2

【讨论】:

  • 漂亮!添加到我的武器库中!
猜你喜欢
  • 1970-01-01
  • 2021-12-26
  • 2021-06-10
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 2015-05-09
相关资源
最近更新 更多