#r #datetime #time #milliseconds
Вопрос:
У меня есть столбец даты и времени, содержащий дату и время в формате TZ, например:
метка времени = 2021-04-01T04:37:16.528 Z
Я должен преобразовать/усечь часть миллисекунд таким образом, чтобы дата и время были:
as.POSIXct(timestamp, format="%Y-%m-%dT%H:%M:%OSZ", tz="GMT")
2021-04-01 04:37:16
Но когда я группирую данные по столбцу времени для агрегирования, он по-прежнему использует метку времени в формате миллисекунд, и агрегирование не реализовано должным образом.
Я хочу обрезать, а не просто печатать дату и время только до секунд.
Ответ №1:
Вы можете удалить часть миллисекунд из строки, а затем преобразовать:
as.POSIXct(gsub("\.[0-9] Z", "", timestamp),
format="%Y-%m-%dT%H:%M:%S", tz="GMT")
Комментарии:
1. Почему бы вам не отбросить их, вместо того чтобы округлять в большую или меньшую сторону до секунд?
2. уменьшение миллисекунд не изменит секунды, но округление будет (например, 12:12:12,899 будет округлено до 12:12:13). в этом случае агрегирование будет неправильным