我有一个非常大的 bool(boolean) vector (即T
或F
),我想简单地估算出 vector 中T
元素之间包含的连续F
的“块”数。
一个带有T
元素的以下三个连续“块”的 vector 的简单示例:
x <- c(T,T,T,T,F,F,F,F,T,T,T,T,F,T,T)
输出:
1,1,1,1,0,0,0,0,2,2,2,2,0,3,3
最佳答案
你可以做:
rle <- rle(x)
rle$values <- with(rle, cumsum(values) * values)
inverse.rle(rle)
[1] 1 1 1 1 0 0 0 0 2 2 2 2 0 3 3
以及基本思想的简化版本(由@Lyngbakr提出):
with(rle(x), rep(cumsum(values) * values, lengths))
关于r - 估计R中的向量中有多少个连续的真实元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56280495/