1) символьный вывод Если вы ищете символьный вектор в качестве результата, преобразуйте компоненты класса Date
в character
.Также обратите внимание, что показанный в вопросе as.Date
не нужен, поскольку Sys.Date()
и смещения от него уже относятся к классу Date
.Кроме того, обратите внимание, что если Sys.Date()
были вызваны дважды прямо в полночь, возможно, что два вызова произошли бы в разные дни.Чтобы избежать этой возможности, мы создаем переменную today
, чтобы ее вызывали только один раз.
today <- Sys.Date()
cols <- c("Metrics", as.character(today-8), as.character(today-1))
cols
## [1] "Metrics" "2019-01-31" "2019-02-07"
1a) Это можно сделать еще короче, как это.
cols <- c("Metrics", as.character(Sys.Date() - c(8, 1)))
cols
## [1] "Metrics" "2019-01-31" "2019-02-07"
2) вывод списка В качестве альтернативы, если вам нужен список с одним character
компонентом и двумя Date
компонентами, то:
today <- Sys.Date()
L <- list("Metrics", today - 8, today - 1)
L
, давая:
[[1]]
[1] "Metrics"
[[2]]
[1] "2019-01-31"
[[3]]
[1] "2019-02-07"
Если у нас уже было L
и мы хотели символьный вектор, мы могли бы преобразовать его следующим образом:
sapply(L, as.character)
## [1] "Metrics" "2019-01-31" "2019-02-07"