使用lubridate时的ifelse函数和日期处理

时间:2015-01-21 15:46:28

标签: r if-statement lubridate

我正在使用我的数据集中的2月29日。我希望在发生这种情况时将此日期更改为2月28日。我尝试使用ifelse语句来处理这种情况,但行为很奇怪。

我想要完成的是:如果月份为2,月份日期为29,则返回1天,否则保留日期。

运行时:

  library(lubridate)
  dt<-ymd("2008-02-29")
  dt<-ifelse(month(dt)==2 & day(dt)==29,
                   dt-days(1),dt)
  dt

以上回复非常奇怪:

> dt
[1] 1204156800

然而,当我在没有ifelse语句的情况下运行它时,日期数学运算正常:

  dt<-ymd("2008-02-29")
  dt<-dt-days(1)
  dt
> dt
[1] "2008-02-28 UTC"

有没有人对如何实现这种行为有任何想法?谢谢!

0 个答案:

没有答案