R计算月末

时间:2017-05-04 02:44:59

标签: r date

我对日期结束有疑问,我将在下面解释 这是我的示例数据:

DATE
2015-01-01
2015-02-05
2015-09-29
2016-02-07
2016-07-24
2016-12-16

我知道如果我想要那个月的总天数,代码是:

days_in_month(DATE)

但是,我想要的是:

DATE            DATE_Month_End
2015-01-01      2015-01-31
2015-02-05      2015-02-28
2015-09-29      2015-09-30
2016-02-07      2016-02-29
2016-07-24      2016-07-31
2016-12-16      2016-12-31

任何建议?

2 个答案:

答案 0 :(得分:8)

你可以这样做:

library(lubridate)

DATE$DATE_Month_End <- DATE$DATE
day(DATE$DATE_Month_End) <- days_in_month(DATE$DATE)

因为day() <-允许您在保留年份和月份的同时更改日期。

答案 1 :(得分:2)

这样的东西?

library(lubridate)
data$DATE <- ymd(data$DATE)
data$DATE_Month_End <- paste(format(data$DATE, format="%y-%m"),"-", days_in_month(data$DATE), sep="") 


  DATE           DATE_Month_End
1 2015-01-01       15-01-31
2 2015-02-05       15-02-28
3 2015-09-29       15-09-30
4 2016-02-07       16-02-29
5 2016-07-24       16-07-31
6 2016-12-16       16-12-31