Индексирование векторов в R - PullRequest
0 голосов
/ 23 января 2020

Я вычисляю, сколько последовательных 0 или 1 в последовательности из 10 чисел.
Например, 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
    }

Ошибка: ошибка в том случае, если (a == b) {: пропущенное значение там, где необходимо ИСТИНА / ЛОЖЬ

Спасибо .

1 Ответ

1 голос
/ 23 января 2020

Мы можем использовать 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...