Преобразование ddmmyy-xxxx в дату в R

#r

#r

Вопрос:

У меня есть dateframe со столбцом с числами, которые представляют дату. Итак, 110190-1111 — это ddmmyy-xxxx, где x не имеют значения. Подразумевается, что столетие равно 1900 году.

 df <- c("110190-1111", "220391-1111", "241287-1111")
 

Я бы хотел, чтобы он был преобразован в.

 c("1990-01-11", "1991-03-22", "1987-12-24)
 

Я удалил последние 4 цифры и «-» следующим образом.

 ID <- c("110190-1111", "220391-1111", "241287-1111")
df <- data.frame(ID)
df <- df %>% mutate(date=gsub("-.*", "", ID))

 

Я пробовал возиться с as.Функция даты безрезультатно. Есть предложения? Спасибо.

Ответ №1:

как.Date игнорирует мусор в конце, поэтому

 df %>% mutate(Date = as.Date(ID, "%d%m%y"))
 

предоставление:

            ID       Date
1 110190-1111 1990-01-11
2 220391-1111 1991-03-22
3 241287-1111 1987-12-24
 

или использование только базового R:

 transform(df, Date = as.Date(ID, "%d%m%y"))
 

Комментарии:

1. О, это умно. Работает отлично, спасибо.

Ответ №2:

Мы можем использовать dmy из lubridate

 library(lubridate)
df$date <- dmy(df$date)