Согласование дат - PullRequest
       1

Согласование дат

1 голос
/ 21 апреля 2020

У меня есть фрейм данных с датами и временем в нем.

Теперь я хочу преобразовать каждую дату в правильный месяц. Как я могу это сделать?

Теперь это выглядит так:

1   01.01.2019 00:00:20.747000
2   21.04.2019 00:00:21.362000
3   31.08.2019 00:00:21.422000

Мне нужно это в таком формате:

1   01.01.2019
2   21.04.2019 
3   31.08.2019

или, в конце концов, так:

1 January
2 April
3 August

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

С помощью базы R вы можете сделать следующее.

Во-первых, я не был уверен, был ли начальный кадр данных в формате POSIXct. Я преобразовал его для своего примера.

Затем вы можете использовать format для извлечения номера месяца или названия месяца.

lubridate - отличный пакет для различных манипуляций с датами. и имеет функцию month.

df$datetime <- as.POSIXct(df$datetime, format = "%d.%m.%Y %H:%M:%OS")
df$date_only <- as.Date(df$datetime)
df$month_num <- format(df$datetime, "%m")
df$month <- format(df$datetime, "%B")
df

Выход

             datetime  date_only month_num   month
1 2019-01-01 00:00:20 2019-01-01        01 January
2 2019-04-21 00:00:21 2019-04-21        04   April
3 2019-08-31 00:00:21 2019-08-31        08  August

Данные

df <- structure(list(datetime = c("01.01.2019 00:00:20.747000", "21.04.2019 00:00:21.362000", 
"31.08.2019 00:00:21.422000")), class = "data.frame", row.names = c(NA, 
-3L))
1 голос
/ 21 апреля 2020

Попробуйте:

df$date <- lubridate::dmy_hms(df$date)

df$date <- format(df$date, "%d.%m.%Y")

данные:

df: structure(list(date = c("01.01.2019", "21.04.2019", "31.08.2019"
)), row.names = c(NA, -3L), class = "data.frame")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...