我希望得到一个月的第一个和最后一个工作日的清单 它基本上是一个工作日列表:
2009-01-03
2009-01-04
2009-01-05
...
我只想获得每个月 - 月组合的第一天和最后几天的列表,基本上以及最大和最小日(日期)。
有什么建议吗?
答案 0 :(得分:6)
您的问题表明您已经有一个工作日列表,并且您需要一种方法来查找每个月 - 月组合的最小值和最大值。
您可以使用ddply
包中的plyr
来执行此操作。我也使用了包lubridate
,因为它有一些便利功能来从日期中提取年份和月份。
创建一些数据:
library(lubridate)
x <- sample(seq(as.Date("2011-01-01"), by="1 day", length.out=365), 100)
df <- data.frame(date=x, year=year(x), month=month(x))
现在提取每个月的最小值和最大值:
library(plyr)
ddply(df, .(year, month), summarize, first=min(date), last=max(date))
year month first last
1 2011 1 2011-01-03 2011-01-30
2 2011 2 2011-02-03 2011-02-19
3 2011 3 2011-03-06 2011-03-29
4 2011 4 2011-04-09 2011-04-30
5 2011 5 2011-05-01 2011-05-29
6 2011 6 2011-06-04 2011-06-28
7 2011 7 2011-07-02 2011-07-29
8 2011 8 2011-08-10 2011-08-30
9 2011 9 2011-09-01 2011-09-28
10 2011 10 2011-10-07 2011-10-31
11 2011 11 2011-11-01 2011-11-28
12 2011 12 2011-12-01 2011-12-30