Почему unlist() убивает даты в R

Когда я перечислил список дат, он вернет их в числовые значения. Это нормально? Любое обходное решение, кроме повторного применения as.Date?

> dd <- as.Date(c("2013-01-01", "2013-02-01", "2013-03-01"))
> class(dd)
[1] "Date"
> unlist(dd)
[1] "2013-01-01" "2013-02-01" "2013-03-01"
> list(dd)
[[1]]
[1] "2013-01-01" "2013-02-01" "2013-03-01"

> unlist(list(dd))
[1] 15706 15737 15765

Это ошибка?

Ответ 1

do.call - это удобная функция "сделать что-то" со списком. В нашем случае объедините его, используя c. Это не редкость для cbind или rbind data.frames из списка в один большой файл data.frame.

То, что мы делаем здесь, - это объединение элементов списка dd. Это было бы аналогично c(dd[[1]], dd[[2]]). Обратите внимание, что c может быть предоставлено как функция или как символ.

> dd <- list(dd, dd)
> (d <- do.call("c", dd))
[1] "2013-01-01" "2013-02-01" "2013-03-01" "2013-01-01" "2013-02-01" "2013-03-01"
> class(d) # proof that class is still Date
[1] "Date"