У меня есть три столбца для дня, месяца и года, которые я хочу использовать для создания одного столбца даты
> dt
mon day year
1: NA NA NA
2: NA NA NA
3: NA NA NA
4: NA NA NA
5: NA NA NA
6: NA NA NA
7: NA NA NA
8: 10 10 2017
9: NA NA NA
10: 4 4 2018
11: NA NA NA
12: NA NA NA
13: NA NA NA
14: NA NA NA
15: NA NA NA
16: NA NA NA
>
Я использовал приведенный ниже код, который дает странные результаты:
> as.Date(paste(dt$mon,dt$day,dt$year,sep="-"),format = "%m-%d-%y")
[1] NA NA NA NA NA NA NA
[8] "2020-10-10" NA "2020-04-04" NA NA NA NA
[15] NA
Я также попробовал ниже:
library("lubridate")
with(dt, ymd(sprintf('%04d%02d%02d', year, mon, day)))
здесь я получаю ошибку: Ошибка в sprintf ("% 04d% 02d% 02d", год, понедельник, день): недопустимый формат "% 04d";использовать формат% f,% e,% g или% a для числовых объектов
Пожалуйста, предложите, если что-то не так с этими кодами или есть лучшее решение для моей проблемы?
Спасибо!