Разделить данную временную метку на формат год, месяц, день, период - PullRequest
0 голосов
/ 07 февраля 2019

Я пишу код R, и у меня проблема с разделением формата даты на год, месяц, день и час.У меня есть фрейм данных с именем Метаданные, имеет столбец X_date, содержит метку времени, например '01.01.2020 00:00:00', '01.01.2020 01:00:00' и так далее.Я хочу изменить этот столбец x_date на дополнительные четыре столбца, а именно year, month, day и hour.Я попробовал этот способ, используя некоторый предыдущий ответ:
Metadata$Date <- as.Date(Metadata$X_date)

Metadata$Time <- format(as.POSIXct(Metadata$X_date) ,format = "%Y:%m:%d %H")

Это дало мне эту ошибку: Error in as.POSIXlt.character(as.character(x), ...) : character string is not in a standard unambiguous format

Я очень новичок вR программирование.Пожалуйста, помогите мне.Спасибо за ваше время.

1 Ответ

0 голосов
/ 07 февраля 2019

Указанное format должно соответствовать порядку, в котором все компоненты «Дата / Время» встречаются в исходном векторе.Предполагая, что «день» является первым, а затем «месяц», покрытие в «POSIXct» будет

as.POSIXct(Metadata$X_date, format = "%d.%m.%Y %H:%M:%S")

Поскольку мы хотим создать новые столбцы, это можно сделать с помощью tidyverse

library(tidyverse)
library(lubridate)
Metadata %>%
    mutate(X_date = dmy_hms(X_date), 
            year = year(X_date), 
            month = month(X_date),
            day = day(X_date), 
            hour = hour(X_date))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...