我需要减去两年,并添加一天如下所示的日期。使用软件包lubridate,我可以分别从常规年份或闰年中减去日期,但我需要同时执行这两个操作。抽象的年份和日期到一个数据框
df <- data.frame(
ServiceDate = c('2010-02-28','2016-02-29'), stringsAsFactors = F)
df$ServiceDate <- as.Date(df$ServiceDate, "%Y-%m-%d")
library(lubridate)
df$TwoYearsEarlier <- ymd(df$ServiceDate) - years(2) + days(1)
这是我从代码中获得上述
df
ServiceDate TwoYearsEarlier
2010-02-28 2008-02-29
2016-02-29 <NA>
有没有办法在同一时间来计算值两者的日子?
这是所期望的结果:
df
ServiceDate TwoYearsEarlier
2010-02-28 2008-02-29
2016-02-29 2014-03-01
在Excel我使用这样
= DATE(YEAR(AW2)-2,MONTH(AW2),日(AW2)+1)
这函数是矢量化的我很想知道为什么它会返回“NA”,它可能是因为未来的数据? – SabDeM
“年”功能正在寻找“2014-02-29”,无法找到它。尝试解决方法'ymd(df $ ServiceDate) - days(731)' –