У меня около 50 уникальных событий, которые происходят более одного раза в течение дня. Решение должно пройти проверку событий, если их время начала относится к ним в столбце timestamp
. Поскольку магазины timestamp
, время start
и end
. И есть, некоторые из событий могут происходить одно за другим, имея другое время начала и другое время окончания.
Мне трудно понять следующее:
У меня есть тиббл с:
timestamp
содержит точное начало и точный конец события вплоть до миллисекунд, поэтому start
и stop
находятся в timestamp
start
столбец содержит начало события без миллисекунд
stop
столбец содержит конец события до миллисекунд
event
столбец содержит название события
Я хотел бы перенести миллисекунды с timestamp
, когда началось событие, в столбец start
для конкретного события, которое началось в столбце start
.
options(digits.secs=3)
timestamp <- as.POSIXct(c("2019-01-07 06:05:23.582 CET", "2019-01-07 06:05:23.582 CET", "2019-01-07 06:05:23.582 CET",
"2019-01-07 06:05:43.967 CET", "2019-01-07 06:05:43.967 CET", "2019-01-07 06:05:43.967 CET",
"2019-01-07 06:05:45.026 CET","2019-01-07 06:07:10.463 CET", "2019-01-07 06:07:10.463 CET",
"2019-01-07 06:07:18.467 CET"))
start <- as.POSIXct(c("2019-01-07 06:05:23 CET", "2019-01-07 06:05:23 CET", "2019-01-07 06:05:23 CET", "2019-01-07 06:05:23 CET",
"2019-01-07 06:05:23 CET", "2019-01-07 06:05:23 CET", "2019-01-07 06:05:23 CET", "2019-01-07 06:07:10 CET",
"2019-01-07 06:07:10 CET", "2019-01-07 06:07:10 CET"))
stop <- as.POSIXct(c(NA, NA, NA, "2019-01-07 06:05:43.967 CET", NA, "2019-01-07 06:05:43.967 CET",
"2019-01-07 06:05:45.026 CET", NA, NA, "2019-01-07 06:07:18.467 CET"))
event <- c("A", "A", "B", "A", "B", "A", "B", "C", "B", "B")
df <- tibble(timestamp = timestamp, start = start, stop = stop, event = event)
df
Конечной целью является следующая таблица:
start stop event
<dttm> <dttm> <chr>
1 2019-01-07 06:05:23.582 2019-01-07 06:05:43.967 A
2 2019-01-07 06:05:23.582 2019-01-07 06:05:45.026 B
3 2019-01-07 06:07:10.463 2019-01-07 06:07:18.467 B
Миллисекунды начала события, перенесенные из столбца timestamp
в start
.
В моем случае событие A имеет два события с одинаковым началом и остановом до миллисекунд, поэтому требуется только одно событие.
Заранее спасибо!