计算向量中的序列数

use*_*544 3 counter r vector

我有一个二进制向量,我想要计算我有多少1个序列.所以如果我有一个像这样的矢量:

bin <- c(1,1,0,1,1,1,1,0,0,0,1,0,1,1,0,0,1,1,1)
Run Code Online (Sandbox Code Playgroud)

我会的5.我还没有找到任何可以做到这一点的现有功能,任何人都有一个关于如何写一个的好的技巧?当序列都有不同的长度时,我不知道如何构建"计数器".

Sim*_*lon 7

为此构建了运行长度编码函数(rle).在帮助计算向量中相等值的运行长度时,它会返回带有值的长度.所以使用. rle( bin )

$values输出与您想要的值(1)==sum结果进行比较(因为您得到一个TRUE1L当值的运行时间为1s):

sum( rle(bin)$values == 1 )
[1] 5
Run Code Online (Sandbox Code Playgroud)