我有一个非常大的 bool(boolean) vector (即TF),我想简单地估算出 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/

10-12 14:04