Я хочу отформатировать нестандартное изменение данных формата значения (чтение только при изменении Value
) в стандартный формат 30-секундного интервала.
Что у меня есть: df
:
Timestamp Value
6/26/2018 0:00:06 10
6/26/2018 0:01:06 15
6/26/2018 0:02:15 20
и dput
:
structure(list(Timestamp = c("6/26/2018 0:00:06", "6/26/2018 0:01:06",
"6/26/2018 0:02:15"), Value = c(10L, 15L, 20L)), .Names = c("Timestamp",
"Value"), class = "data.frame", row.names = c(NA, -3L))
что бы якак formatted_df
:
Timestamp Value
6/26/2018 0:00:30 10
6/26/2018 0:01:00 10
6/26/2018 0:01:30 15
6/26/2018 0:02:00 15
6/26/2018 0:02:30 20
Моя попытка:
Используя функции из lubridate
и dplyr
, я получил интервалы, кратные30 секунд, но он не не стандартизирует до 30 секунд:
formatted <- df %>% mutate(Timestamp_Date = as.POSIXct(Timestamp, tz = "US/Eastern", usetz = TRUE, format="%m/%d/%Y %H:%M:%S"),
rounded_timestamp = ceiling_date(Timestamp_Date, unit = "30 seconds"))
с formatted
:
Timestamp Value Timestamp_Date rounded_timestamp
6/26/2018 0:00:06 10 6/26/2018 0:00:06 6/26/2018 0:00:30
6/26/2018 0:01:06 15 6/26/2018 0:01:06 6/26/2018 0:01:30
6/26/2018 0:02:15 20 6/26/2018 0:02:15 6/26/2018 0:02:30
Я думаю lubridate
иdplyr
было бы здесь полезно, но я бы поспорил, что data.table
может это сделать.