2011-08-26 58 views
4

我期待着獲得該月的第一個和最後一個工作日的列表。
其基本的工作日列表:在R或Mysql中查找第一個和最後一個工作日

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

我只是想獲得的第一天和最後一天的清單,基本上和最大值和最小值日子(日期),每年一個月組合。

有什麼建議嗎?

+1

以(個別國家)假日考慮? – NPE

+0

你的出發點是一個月內所有工作日的清單嗎? – Andrie

+0

是的,我只需要每月的第一天和最後一天。 – screechOwl

回答

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 
+0

太棒了!非常感謝你! – screechOwl

相關問題