如何使用POSIXlt对象的apply函数?

时间:2015-07-15 20:45:37

标签: r types sapply

Heyo,

所以我喜欢使用可能是问题的功能样式。但是,我试图获取一个Date对象,并获得任意数年。

# The Date object that is the starting point
referencedate <- as.Date("2015-06-30")
# The function that returns n years back
nYearsBack <- function(x,n){
  x <- as.POSIXlt(x)
  x$year <- x$year-n
  as.Date(x)
}
# The vector of years back we want returned as dates
yearsgoingback <- c(0,3,5)
# The function that doesn't work = (
datesgoingback <- sapply(X = yearsgoingback, FUN = function(x) nYearsBack(referencedate,x))

返回

[1] 16616 15521 14790

然后重新制作它我必须运行:

as.Date(datesgoingback, origin = "1970-01-01")

这引出了一些问题:为什么我需要再做一个必须将整数重新转换为Date对象的步骤?

我认为这可能是一个讽刺性的vapply差异,但即使我使用vapply使用FUN.VALUE = Sys.time()运行上述代码,它也会产生相同的整数结果。

有没有办法简洁地采用日期(可能存在的任何种类)和任意整数向量,并从输入日期返回年份的向量?

感谢您的时间。

0 个答案:

没有答案