Мне нужно найти самую длинную последовательность first TRUE в булевом векторе. Некоторые примеры:
bool <- c(FALSE, TRUE, FALSE, TRUE)
# should become
c(FALSE, TRUE, FALSE, FALSE)
bool <- c(FALSE, TRUE, FALSE, TRUE, TRUE)
# should become
c(FALSE, FALSE, FALSE, TRUE, TRUE)
bool <- c(FALSE, TRUE, TRUE, FALSE, TRUE, TRUE)
# should become
c(FALSE, TRUE, TRUE, FALSE, FALSE, FALSE)
Ответ от здесь обрабатывает все мои дела правильно, кроме первого из приведенных выше примеров.
Как я могу изменить
with(rle(bool), rep(lengths == max(lengths[values]) & values, lengths))
, чтобы он также правильно обрабатывал первый пример, приведенный выше?