首页 > 解决方案 > R中的向量索引

问题描述

我正在计算 10 个数字序列中有多少个连续的 0 或 1。
例如 0 0 1 0 1 1 0 1 0 1 1 1
有 4 (00, 11, 11, 11)。

这是我的代码。

c <- floor(2 * runif(10))
count = 0

for (i in 1:length(c)) {
        a = c[i] 
        b = c[i+1]
        if (a == b) {
             count = count + 1
    }
    count
    }

错误:if (a == b) {中的错误:需要 TRUE/FALSE 的缺失值

谢谢你。

标签: r

解决方案


我们可以使用rle

with(rle(x), sum(lengths[lengths > 1] - 1))
#[1] 4

数据

x <- c(0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1)

推荐阅读