我需要減去兩年,並添加一天如下所示的日期。使用軟件包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)' –