векторы с использованием условия на значениях прогона.

ема: По атомному вектору найдите начальный и конечный индексы прогонов в векторе.

Пример вектора с прогонами:

x = rev(rep(6:10, 1:5))
# [1] 10 10 10 10 10  9  9  9  9  8  8  8  7  7  6

Выход изrle():

rle(x)
# Run Length Encoding
#  lengths: int [1:5] 5 4 3 2 1
#  values : int [1:5] 10 9 8 7 6

Желаемый вывод:

#   start end
# 1     1   5
# 2     6   9
# 3    10  12
# 4    13  14
# 5    15  15

Базаrle класс, кажется, не обеспечивает эту функциональность, но классRle и функцияrle2 делать. Однако, учитывая незначительные функциональные возможности, придерживаться базы R кажется более разумным, чем установка и загрузка дополнительных пакетов.

Есть примеры фрагментов кода (Вот, Вот а такжена ТАК), которые решают немного другую проблему нахождения начальных и конечных индексов для прогонов, которые удовлетворяют некоторому условию. Я хотел что-то более общее, могло бы быть выполнено в одну строку и не включать в себя назначение временных переменных или значений.

Отвечая на мой собственный вопрос, потому что я был разочарован отсутствием результатов поиска. Надеюсь, это кому-нибудь поможет!

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

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