Как найти расстояние между значением и последующим появлением того же значения в векторе? - PullRequest
2 голосов
/ 26 марта 2012

У меня есть вектор в R, который выглядит так:

dat <- c(TRUE, TRUE, FALSE, FALSE, TRUE, FALSE)

То, что я хотел бы рассчитать, - это расстояние между конкретным значением и последующим появлением того же значения. В этом примере я ищу последующее вхождение «ИСТИНА» и хотел бы, чтобы результирующий вектор был:

dat1 <- c(1, 3, NA, NA, NA, NA)

Есть ли простой способ сделать это?

1 Ответ

3 голосов
/ 26 марта 2012

Почему значения NA в конце?

В этом случае вы можете получить правильный ответ:

> diff(which(X))
[1] 1 3

или, для ЛОЖНЫХ значений:

> diff(which(!X))
[1] 1 2

Затем вы можете добавить столько значений NA, сколько захотите, или задать вектор, например:

> result <- rep(NA,6)
> tmp <- diff(which(X))
> result[seq_along(tmp)] <- tmp
> result
[1]  1  3 NA NA NA NA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...