разбить на блоки данных и получить максимум / мин в R - PullRequest
0 голосов
/ 21 апреля 2020

В настоящее время у меня есть временной ряд с y-значениями = количество предметов и x-значениями = даты + время покупки (например, в 01.01.2020 13:45 кто-то купил 5 предметов). Мои данные выглядят как следующее изображение плюс некоторый шум (но давайте представим, что это похоже на квадратный сигнал):

enter image description here

Однако ширина каждого прямоугольника может различаться. Я хочу получить минимальное и максимальное значения по оси X, когда есть покупки (например, на рисунке могут быть покупки между значениями от 0,2 до 0,4, поэтому эти 2 значения будут моими минимальными). и макс соответственно, но в моем случае будет дата / время). Однако в этом случае будет несколько блоков различной длины, и я хотел бы извлечь только минимальные / максимальные значения этого блока, но мне не пришло в голову сделать это, поскольку я новичок в R. привести меня к возможному способу решения этой проблемы?

очень упрощенный пример будет следующим:

purchase.dates <- c("01/01/2020 20:00", "01/01/2020 20:10", "01/01/2020 20:22", ..., "01/01/2020 23:59", "01/02/2020 00:01", "01/02/2020 00:15", "01/02/2020 08:00", "01/02/2020 08:03", "01/02/2020 08:15")

И из этого примера я хотел бы получить 2 блока (на самом деле я бы хотелось бы ожидать больше блоков, когда я принимаю во внимание больше дней, но в этом случае есть только 2 разных дня):

block1 = c("01/01/2020 20:00", "01/01/2020 20:10", "01/01/2020 20:22", ..., "01/01/2020 23:59", "01/02/2020 00:01", "01/02/2020 00:15")

block2 = c("01/02/2020 08:00", "01/02/2020 08:03", "01/02/2020 08:15")

...