У меня есть тиббл с R около 2000 строк. Он был импортирован из Excel с использованием read_excel. Одним из полей является поле даты: dob. Он импортируется в виде строки и имеет даты в трех форматах:
"YYYY-MM-DD"
"DD-MM-YYYY"
"XXXXX" (ie, a five-digit Excel-style date)
Допустим, я рассматриваю столбец как вектор.
dob <- c("1969-02-02", "1986-05-02", "34486", "1995-09-05", "1983-06-05",
"1981-02-01", "30621", "01-05-1986")
Я вижу, что мне, вероятно, нужно решение, которое использует parse_date_time и as.Date.
Если я использую parse_date_time:
dob_fixed <- parse_date_time(dob, c("ymd", "dmy"))
Это исправляет их все, кроме пятизначного, которое возвращает NA.
Я могу исправить пятизначную, используя as.integer и as.Date:
dob_fixed2 <- as.Date(as.integer(dob), origin = "1899-12-30")
В идеале я бы запустил один, а затем другой, но поскольку каждый возвращает NA для строк, которые не работают, я не могу этого сделать.
Какие-либо предложения для всего? Я мог бы просто изменить их в Excel и повторно импортировать, но я чувствую, что это обман!