Вот мои данные.
a <-
structure(list(timestamp1.x = c("2019-05-31 18:27:34", "2019-05-31
18:28:34", "2019-05-31 18:29:34", "2019-05-31 18:29:59", "2019-05-31
18:35:35", "2019-05-31 18:35:43", "2019-05-31 18:41:43", "2019-05-31
18:42:45", "2019-05-31 18:49:34", "2019-05-31 18:50:34"), sensor =
c("A", "A", "A", "A", "B", "B", "C", "C", "A", "A"), direction =
c(-75,
-78, -58, -54, -72, -47, -57, -51, -75, -78)), row.names = c(NA,
-10L), class = c("tbl_df", "tbl", "data.frame"))
Я хотел бы объединить данные с 5-минутным интервалом для каждого датчика.
Это пробная версия.
aa <- a %>%
mutate(timestamp1.x = as.POSIXct(timestamp1.x, format = "%Y-%m-%d %H:%M:%S")) %>%
group_by(sensor, timestamp1.x = cut(timestamp1.x, breaks="5 min")) %>%
summarize(mean_direction = mean(direction))
И это таблица результатов.
sensor timestamp1.x mean_direction
<chr> <fct> <dbl>
1 A 2019-05-31 18:27:00 -66.2
2 A 2019-05-31 18:47:00 -76.5
3 B 2019-05-31 18:32:00 -59.5
4 C 2019-05-31 18:37:00 -57
5 C 2019-05-31 18:42:00 -51
Однако я хотел бы объединить его для каждой группы (датчика).
Это означает, что в случае датчика A данные должны быть агрегированы с 18:27:00 до 18:31:59 (5-минутный интервал). Для датчика B данные с 18:35:00 до 18:39:49 (5-минутный интервал) должны быть агрегированы.
Это результат, который я хочу.
sensor timestamp1.x mean_direction
<chr> <fct> <dbl>
1 A 2019-05-31 18:27:00 -66.2
2 A 2019-05-31 18:49:00 -76.5
3 B 2019-05-31 18:35:00 -59.5
4 C 2019-05-31 18:41:00 -54
Как добавить некоторые функции и опции в 'group_by' или другие коды?