我希望计算该值低于某个点的次数以及何时超过从开始开始计数的阈值。
例如,如果我有
X <- c(1,2,11,14,5,6,7,12)
我计算连续值小于10的次数然后我想要一个答案
输出= 2,3 由于1,2小于10所以总共2,然后计数再次开始为5,6,7,总数为3
答案 0 :(得分:4)
您可以使用rle
功能:
<EformData>
<EformFields>
<FieldName>txt_telnumber</FieldName>
<FieldValue>123456</FieldValue>
</EformFields>
</EformData>
简要说明:
1)with(rle(X < 10),lengths[values])
> [1] 2 3
返回:X < 10
所以我们只需要计算连续TRUE的批次
2)c(TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE)
完全相同,返回一个对象(具有rle(X < 10)
和lengths
属性的列表),指示连续批次的值及其长度。在这种情况下:
values
3)所以做Run Length Encoding
lengths: int [1:4] 2 2 3 1
values : logi [1:4] TRUE FALSE TRUE FALSE
我们得到了你想要的,但创建了一个无用的临时变量RLE <- rle(X < 10); RLE$lengths[RLE$values]
(实际上并不是什么大不了的事),但是使用with
我们只是跳过它通道。