Мы можем заменить начальный пробел буквой, и он вернет NA
as.Date(sub("^ ", "T", " 20180101"), format = "%Y%m%d")
#[1] NA
Или используйте chartr
для замены
as.Date(chartr(" ", "T", " 20180101"), format = "%Y%m%d")
#[1] NA
Или создайте функцию, которая проверяет наличие пробела trailing/leading
и задает для него значение NA
перед выполнением преобразования класса Date
dateWithTrailingLeadingSpace <- function(date, format) {
i1 <- grepl("^ | $", date)
date[i1] <- NA
as.Date(date, format = format)
}
dateWithTrailingLeadingSpace(c(" 20180101", "20180101", "20180101 "),
format = "%Y%m%d")
#[1] NA "2018-01-01" NA