2016-09-22 5 views
2

私はそのようないくつかの日付データを持っている多くの変更方法:「日付」sの「期間」

> 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 

これを行うにはどうすればいいですか? そして、私は仕事の日だけを考えたいと思ったら、それをどうやって行うのですか?

ありがとうございます。

答えて

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 
関連する問題