Мы можем использовать as.yearmon
library(zoo)
as.Date( as.yearmon(dat, "%d-%b"))
#[1] "2020-11-01" "2020-11-01" "2020-01-01" "2020-06-01" "2020-02-01" "2020-04-01" "2020-12-01" "2020-08-01"
#[9] "2020-01-01" "2020-01-01" "2020-10-01" "2020-06-01" "2020-08-01" "2020-05-01" "2020-10-01" "2020-08-01"
#[17] "2020-11-01" "2020-01-01" "2020-12-01" "2020-11-01"
Если у нас есть несколько смешанных форматов, например, %b-%d
вместе с показанным в посте, можно переставить подстроку с sub
, чтобы сделать это один формат, а затем применить as.yearmon
as.Date(as.yearmon(sub("^([A-Za-z]+)-(\\d+)$", "\\2-\\1", dat), "%d-%b"))
данных
dat <- c("20-Nov", "15-Nov", "20-Jan", "20-Jun", "20-Feb", "19-Apr",
"16-Dec", "20-Aug", "17-Jan", "16-Jan", "17-Oct", "19-Jun", "17-Aug",
"16-May", "16-Oct", "18-Aug", "19-Nov", "15-Jan", "17-Dec", "18-Nov")