Возможная ошибка в `difftime` - вычисление разницы в дате и времени в R
Я рассчитываю разницу между двумя датами, используя difftime
функция в R
и получить неправильный ответ, вот код
t1 <- as.POSIXct("7/18/2005 8:30:00", format = "%m/%d/%Y %H:%M:%S")
t2 <- as.POSIXct("10/30/2005 8:30:00", format = "%m/%d/%Y %H:%M:%S")
difftime(t2,t1,units = "hours")
Я получаю следующий ответ
Time difference of 2497 hours
что я знаю, это неправильно, так как оба t1
а также t2
имеют те же time
значение, поэтому они должны быть разделены точным кратным 24 часам (т. е. правильный ответ - 2496 часов, а не 2497 - также подтверждается другими инструментами, такими как Excel, листы Google).
Любая идея, почему R
дает мне неправильный результат?
1 ответ
Вы получили один час благодаря переходу на летнее время (30.10.2005, воскресенье, 02:00:00)
Вы можете изменить это, выполнив as.POSIXct(..., tz = 'UTC')
в каком часовом поясе он должен быть; UTC, чтобы сделать вещи однозначными и избежать изменений DST.
Если вы хотите изменить часовой пояс по умолчанию для всех as.POSIXct()
звонки, см. Как изменить часовой пояс по умолчанию в R?, что предполагает:
- [как команда R]
Sys.setenv(TZ='GMT')
или же - [R установочный файл] редактировать
TZ="UTC"
вRenviron.site