Как мне разделить Datatime в R? - PullRequest
       4

Как мне разделить Datatime в R?

0 голосов
/ 23 сентября 2019

У меня есть атрибут datetime, как показано ниже

    +----------------------+
    |       DateTime       |
    +----------------------+
    | 2016-01-01T00:00:00  |
    | 2016-01-01T00:20:00  |
    | 2016-01-01T00:40:00  |
    | 2016-01-01T01:00:00  |
    +----------------------+

, и я ищу решение, похожее на приведенную ниже таблицу,

    +------------+----------+
    |    Date    |   Time   |
    +------------+----------+
    | 2016-01-01 | 00:00:00 |
    | 2016-01-01 | 00:20:00 |
    | 2016-01-01 | 00:40:00 |
    | 2016-01-01 | 01:00:00 |
    +------------+----------+

Я попробовал приведенный ниже код,

    req_df$Date <- as.Date(req_df$DateTime) 
    req_df$Time <- format(as.POSIXct(req_df$DateTime) ,format = "%H:%M:%S") 

На самом деле он возвращает таблицу, как показано ниже,

    +------------+----------+
    |    Date    |   Time   |
    +------------+----------+
    | 2016-01-01 | 00:00:00 |
    | 2016-01-01 | 00:00:00 |
    | 2016-01-01 | 00:00:00 |
    | 2016-01-01 | 00:00:00 |
    +------------+----------+

, почему я получаю таблицу, подобную приведенной выше, и какие изменения я должен внести в код, чтобы получить вывод, как упомянуто?

Заранее спасибо.

1 Ответ

0 голосов
/ 23 сентября 2019

См. Разницу между двумя выходами ниже

as.POSIXct('2016-01-01T00:20:00', tz = "UTC")
#[1] "2016-01-01 UTC"

as.POSIXct('2016-01-01T00:20:00', format = "%Y-%m-%dT%T", tz = "UTC")
#[1] "2016-01-01 00:20:00 UTC"

Поскольку столбец DateTime не в стандартном формате, вам необходимо явно указать format в as.POSIXct.

Следовательно,

req_df$Time <- format(as.POSIXct(req_df$DateTime, format = "%Y-%m-%dT%T"), 
               format = "%T") 

должен дать вам ожидаемый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...