В пакете pracma
используйте
tt <- c(1,2,3,2,1, 1, 2, 1)
tt_peaks <- findpeaks(tt, zero = "0", peakpat = NULL,
minpeakheight = -Inf, minpeakdistance = 1, threshold = 0, npeaks = 0, sortstr = FALSE)
[,1] [,2] [,3] [,4]
[1,] 3 3 1 5
[2,] 2 7 6 8
Возвращает матрицу с 4 столбцами.
Первый столбец показывает абсолютные значения локальных пиков.
2-й столбец - индексы
3-й и 4-й столбцы - это начало и конец пиков (с потенциальным перекрытием).
Подробнее см. https://www.rdocumentation.org/packages/pracma/versions/1.9.9/topics/findpeaks.
Одно предупреждение: я использовал его в серии нецелых чисел, и пик был на один индекс слишком поздно (для всех пиков), и я не знаю почему. Поэтому мне пришлось вручную удалить «1» из моего вектора индекса (ничего страшного).