расщепление (1: n) [логическое] на смежные последовательности

Я хочу разделить мои данные на группы последовательных строк, которые проходят некоторый тест. Вот'Вот пример:

set.seed(1)
n   

Ответы на вопрос(1)

Решение Вопроса

Вот'сcumsum "трюк» для тебя:

split(vec, cumsum(c(1, diff(vec)) - 1))

Обновить

Вот простой пример использования вашей версииsplit(vec, cumsum(c(0, diff(vec) > 1))) с каждым шагом разбито:

vec  1                #   F F T F F  (not contiguous where diff > 1)
                             #   0 0 1 0 0  (numeric equivalent for T/F)
c(0, diff(vec) > 1)          #  0 0 0 1 0 0 (pad with 0 to align with original vector)
cumsum(c(0, diff(vec) > 1))  #  0 0 0 1 1 1 (cumulative sum of logical values)

groups  1)) #  0 0 0 1 1 1

sets 
 Frank28 мая 2013 г., 22:59
Благодарю. Разобрав ваше решение, я обнаружил, что предпочитаю эту форму:split(vec, cumsum(c(0, diff(vec) > 1)))

Ваш ответ на вопрос