【发布时间】:2012-03-19 05:17:57
【问题描述】:
我有一个包含日期变量的大型数据框,它反映了当月的第一天。有没有一种简单的方法可以创建一个新的数据框日期变量来表示该月的最后一天?
以下是一些示例数据:
date.start.month=seq(as.Date("2012-01-01"),length=4,by="months")
df=data.frame(date.start.month)
df$date.start.month
"2012-01-01" "2012-02-01" "2012-03-01" "2012-04-01"
我想返回一个新变量:
"2012-01-31" "2012-02-29" "2012-03-31" "2012-04-30"
我尝试了以下方法,但没有成功:
df$date.end.month=seq(df$date.start.month,length=1,by="+1 months")
【问题讨论】:
-
您的示例输出不符合问题。
-
你也可以考虑使用
"yearmon"类,它代表年/月,而不需要一开始就需要一天:library(zoo); ym <- as.yearmon("2012-01") + 0:3/12。如果您确实想要该月最后一天的日期,那么as.Date(ym, frac = 1)。 -
G.Grothendieck:谢谢你的建议,以后我一定要记住使用 yearmon 类来处理这类日期数据。