在R或Mysql中查找第一个和最后一个工作日

时间:2011-08-26 14:42:54

标签: mysql r

我希望得到一个月的第一个和最后一个工作日的清单 它基本上是一个工作日列表:

2009-01-03
2009-01-04
2009-01-05
...

我只想获得每个月 - 月组合的第一天和最后几天的列表,基本上以及最大和最小日(日期)。

有什么建议吗?

1 个答案:

答案 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