Добро пожаловать в StackOverflow и отличный вопрос.
Это связано с типом результата. sapply
возвращает вектор, а шаг as.vector()
удаляет атрибут класса. Это прискорбно, но задокументировано:
R> dates <- Sys.Date() + 0:2
R> dates
[1] "2020-04-25" "2020-04-26" "2020-04-27"
R> as.vector(dates)
[1] 18377 18378 18379
R>
(И «число» - это то, как даты представляются внутренне: количество дней с эпохи 1970-01-01. Вы получаете то же самое, когда делаете as.numeric()
или as.integer(0
на них.)
Списки имеют более богатую семантику, а lapply()
, который возвращает список, не вызывает побочного эффекта, описанного выше:
as.list(dates)
[[1]]
[1] "2020-04-25"
[[2]]
[1] "2020-04-26"
[[3]]
[1] "2020-04-27"
R>