r语言 - 如何使 vapply 返回日期向量?



如何使vapply返回日期向量?(我认为这是一个不同的问题:使用 vapply 返回类 POSIXct 的向量(:

f1 <- function(x) {
as.Date(paste0("2000", sprintf("%02d", x), "01"), format = "%Y%m%d")
}
vapply(3:7, f1, as.Date("2000-01-01"))
# [1] 11017 11048 11078 11109 11139

要:

# "2000-03-01" "2000-04-01"  "2000-05-01"  "2000-06-01"  "2000-07-01"

问题是apply族函数会Date类中删除。这是一种方法:

do.call("c", lapply(3:7, f1))

您还可以在评估vapply后添加class(result) <- "Date"

完整版class(result) <- "Date"

result <- vapply(3:7, f1, numeric(1))
class(result) <- "Date"
result
# "2000-03-01" "2000-04-01" "2000-05-01" "2000-06-01" "2000-07-01"

最新更新