vapply и FUN.VALUE для не примитивных типов данных

Будет ли vapply работать с классами данных, кроме числовых, символьных и логических? Может ли vapply вернуть данные в виде исходного кода? Вот мой список:

name <- "Truman"
birth <- as.Date("1884/05/08")
death <- as.Date("1972/12/26")
no33 <-  list("name"=name"birth"=birth,"death"=death)


name <- "Eisenhower"
birth <- as.Date("1890/10/14")
death <- as.Date("1969/03/28")
no34 <- list("name"=name"birth"=birth,"death"=death)

presidents <- list(no33,no34)

lapply отлично работает, но sapply преобразует даты:

lapply(1:length(presidents), FUN= function (x) presidents[[x]]$death)

sapply(1:length(presidents), FUN= function (x) presidents[[x]]$death)

vapply выдает ошибку при указании даты в качестве типа данных:

vapply(1:length(presidents), FUN= function (x)
  as.character(presidents[[x]]$death), FUN.VALUE = date(1)))

Если есть эта одна линия обойти

as.Date(vapply(1:length(presidents), FUN= function (x)
 as.character(presidents[[x]]$death), FUN.VALUE = 
 character(1)))

Что делает sapply? И есть ли лучшая альтернатива моему однострочному хаку?

0 ответов

Другие вопросы по тегам