Ваша функция - это , возвращающая «даты», но не в том формате, к которому вы привыкли.Даты хранятся внутри, как дни с [некоторые фиксированные даты].(Я не могу вспомнить, какой из них, и немного варьируется в зависимости от конкретного формата.)
Если вы завернете свой вызов mapply
в as.Date
, вы увидите ожидаемый результат.
Чтобы увидеть, что здесь происходит, подумайте, что mapply
использует sapply
под капотом.Например,
sapply(df[,1],add_day)
[1] 10958 15097
Но помните, что sapply
по умолчанию unlist
дает результаты для удобства.Если мы укажем simplify = FALSE
:
sapply(df[,1],add_day,simplify = FALSE)
[[1]]
[1] "2000-01-02"
[[2]]
[1] "2011-05-03"
Таким образом, когда R привел список к вектору, информация о классе удаляется, и сохраняется только внутренняя память, а именно количество дней с [независимо от этой конкретной датыявляется].И, конечно же, mapply
также имеет аргумент SIMPLIFY
, который действует аналогичным образом.