Как удалить результат lapply с использованием функции (x) as.Date (as.POSIXct (x, origin = 1970-01-01))

У меня есть список, который является результатом следующей команды:

lapply(data$displayDate, function(x) as.Date(as.POSIXct(x, origin = "1970-01-01")))

Выглядит это так:

> data$displayDateDay[1:10]
[[1]]
[1] "2015-05-02"

[[2]]
[1] "2015-05-10"

[[3]]
[1] "2015-05-10"

[[4]]
[1] "2015-05-10"

[[5]]
[1] "2015-05-11"

[[6]]
[1] "2015-05-12"

[[7]]
[1] "2015-05-12"

[[8]]
[1] "2015-05-13"

[[9]]
[1] "2015-05-13"

[[10]]
[1] "2015-05-26"

Это все хорошо, но я не могу понять, как вернуть это обратно в вектор столбца свойств в моей таблице данных. Если я попытаюсь unlist этот список, вот что я получаю:

> unlist(testVector)
 [1] 16557 16565 16565 16565 16566 16567 16567 16568 16568 16581

Класс числовой, тогда как я хотел дату. Почему это происходит и как я могу получить вектор дат?


person helloB    schedule 24.02.2016    source источник


Ответы (2)


Используйте 1_:

list <- lapply(data$displayDate, function(x) as.Date(as.POSIXct(x, origin = "1970-01-01")))
vec <- do.call("c", list)

Кстати, быстрый поиск в базе данных SO мог бы найти эту жемчужину< /а>.

person Tim Biegeleisen    schedule 24.02.2016
comment
Спасибо за совет и ссылку на предыдущий пост. Я явно не использовал правильные условия поиска. - person helloB; 24.02.2016

Вам действительно не нужно было lapply первое место...

Если data является фреймом данных, следующее должно дать вам столбец в нужной вам форме:

data <- as.data.frame(cbind(row = c(1, 2, 3), displayDate = c(345234523, 242345553, 302424556)))

> data
  row displayDate
1   1   345234523
2   2   242345553
3   3   302424556

data$displayDateDay <- as.Date(as.POSIXct(data$displayDate, origin = "1970-01-01"))

> data
  row displayDate displayDateDay
1   1   345234523     1980-12-09
2   2   242345553     1977-09-05
3   3   302424556     1979-08-02
person retrography    schedule 24.02.2016