我有一些类似的日期数据:
> Date
> 2015-01-01
> 2015-01-02
> 2015-01-03
> 2015-01-04
> 2015-01-06
> 2015-01-07
> ....
但是日期太多了。我想更改数据显示如下:
> Start.Date End.Date
> 2015-01-01 2015-01-04
> 2015-01-06 2015-01-07
怎么做? 如果我只想考虑工作日,该怎么做?
谢谢。
答案 0 :(得分:1)
Date <- c(
"2015-01-01",
"2015-01-02",
"2015-01-03",
"2015-01-04",
"2015-01-06",
"2015-01-07"
)
library(lubridate)
Date <- as.data.frame(ymd(Date))
Date$weekdays <- weekdays(Date$`ymd(Date)`)
# Keep only working days
Date <- Date[!Date$weekdays %in% c("Saturday", "Sunday"),]
# Assuming that "Start" and "End" are defined by week
Date$isoweek <- isoweek(Date$`ymd(Date)`)
Start_Date <- NA
End_Date <- NA
n <- unique(Date$isoweek)
for(i in 1:length(n)){
Start_Date[i] <- as.character(min(Date$`ymd(Date)`[Date$isoweek == n[i]]))
End_Date[i] <- as.character(max(Date$`ymd(Date)`[Date$isoweek == n[i]]))
}
final <- data.frame(Start_Date = Start_Date, End_Date = End_Date)
final