#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)