#r #pivot-table
#r #сводная таблица
Вопрос:
спасибо за ваше время, не могли бы вы помочь мне с этой таблицей данных?
У меня есть такой набор данных:
Станция | Дата | Значение |
---|---|---|
St1 | 22/01/2021 11:25:45 | 5,703 |
St1 | 22/01/2021 11:25:46 | 4,603 |
St1 | 22/01/2021 11:25:47 | 3,703 |
St2 | 22/01/2021 11:25:45 | 5,803 |
St2 | 22/01/2021 11:25:46 | 5,223 |
St3 | 22/01/2021 11:25:45 | 6,333 |
St3 | 22/01/2021 11:25:46 | 3,733 |
Я хотел бы получить подобную сводную таблицу:
Дата | St1 | St2 | St3. |
---|---|---|---|
22/01/2021 11:25 | Среднее значение минуты (11:25) | Среднее значение минуты (11:25) | Среднее значение минуты (11:25) |
22/01/2021 11:26 | Среднее значение минуты(11:26) | Среднее значение минуты(11:26) | Среднее значение минуты(11:26) |
Спасибо за все ваши предложения!
Ответ №1:
Используйте ceiling_date
от lubridate
до округления значений даты и времени и преобразуйте данные в широкий формат.
library(dplyr)
library(lubridate)
library(tidyr)
df %>%
mutate(Date = ceiling_date(dmy_hms(Date), 'min'),
Value = parse_number(Value)) %>%
pivot_wider(names_from = Station, values_from = Value, values_fn = mean)
# Date St1 St2 St3
# <dttm> <dbl> <dbl> <dbl>
#1 2021-01-22 11:26:00 4670. 5513 5033
данные
df <- structure(list(Station = c("St1", "St1", "St1", "St2", "St2",
"St3", "St3"), Date = c("22/01/2021 11:25:45", "22/01/2021 11:25:46",
"22/01/2021 11:25:47", "22/01/2021 11:25:45", "22/01/2021 11:25:46",
"22/01/2021 11:25:45", "22/01/2021 11:25:46"), Value = c("5,703",
"4,603", "3,703", "5,803", "5,223", "6,333", "3,733")), row.names = c(NA,
-7L), class = "data.frame")