Спасибо всем за помощь.
Я нашел решение, предложенное этим ответом на StackOverflow.
Как и вы, я не смог воспроизвести ответ в изолированной среде. Однако, поскольку мое значение «t» исходило из DataFrame, неявное приведение типов, похоже, привело к тому, что значение было сохранено иначе, чем в изолированной среде.
Для сравнения, в моей изолированной среде я получил бы следующее:
> t = as.POSIXct("2018-04-09 09:05:25")
> t
[1] "2018-04-09 09:05:25 CEST"
> as.character(t)
[1] "2018-04-09 09:05:25"
тогда как в моем собственном коде с t из DataFrame я бы получил
> t = tb[i, "time"]
> t
[1] "2018-04-09 09:05:25 CEST"
> as.character(t)
[1] "1523257525"
То есть внутренне что-то другое, чего я, кстати, до сих пор не могу уловить.
Однако его можно «исправить» путем приведения следующим образом:
t = as.POSIXct(as.numeric(t), origin="1970-01-01")
person
Jordi
schedule
29.06.2019
lubridate::hour(as.POSIXct("2018-04-09 09:05:25 CEST"))
возвращает 9. - person Mako212   schedule 28.06.2019lubridate
загружается другой пакет с функциейhour
? - person Jon Spring   schedule 29.06.2019