Часовой пояс для as.POSIXct не работает - PullRequest
0 голосов
/ 16 мая 2018

У меня есть фрейм данных с датами, и я пытаюсь преобразовать его в объект POSIXct, но я не могу указать часовой пояс.Есть идеи, почему это происходит?

> str(dates)
'data.frame':   3171 obs. of  3 variables:
$ Date     : Date, format: "2013-05-14" "2013-08-15" "2014-05-30" "2014-09-29" ...
$ BB_Ticker: Factor w/ 1252 levels "A US Equity",..: 1 2 2 2 2 2 2 2 2 2 ...
$ 1Y       : POSIXct, format: "2013-05-13 20:00:00" "2013-08-14 20:00:00" "2014-05-29 20:00:00" "2014-09-28 20:00:00" ..

Я пытался указать "America/New_York", а также "EST5EDT", но это не дало эффекта -

> head(as.POSIXct(dates$Date, tz = "GMT"), 3)
[1] "2013-05-13 20:00:00 EDT" "2013-08-14 20:00:00 EDT" "2014-05-29 20:00:00 EDT"

> head(as.POSIXct(dates$Date, tz = "America/New_York"), 3)
[1] "2013-05-13 20:00:00 EDT" "2013-08-14 20:00:00 EDT" "2014-05-29 20:00:00 EDT"

> head(as.POSIXct(dates$Date, tz = "EST5EDT"), 3)
[1] "2013-05-13 20:00:00 EDT" "2013-08-14 20:00:00 EDT" "2014-05-29 20:00:00 EDT"

1 Ответ

0 голосов
/ 16 мая 2018

Если вы посмотрите на исходный код as.POSIXct.Date, вы увидите это:

function (x, ...) 
.POSIXct(unclass(x) * 86400)
<bytecode: 0x00000000120de6e0>
<environment: namespace:base>

Обратите внимание, что часовой пояс не передается в .POSIXct.

Вместо этого вы можете использовать символьный метод:

as.POSIXct(as.character(as.Date("2013-05-14")), tz = "GMT")
[1] "2013-05-14 GMT"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...