2017-08-18 14 views
1

私は年 - 週#である2つのオブジェクトを持っています。私は2週間の違いを数週間で見つけたいと思っています。R 2年 - 週オブジェクトの違いを見つけよう

dd1 <- data.frame(date1 = as.Date('2015-01-01') + 1:31 
        , date2 = as.Date('2016-03-01') + 1:31 
        ) 
dd1$wk1 <- strftime(dd1$date1, format = '%Y-%W') 
dd1$wk2 <- strftime(dd1$date2, format = '%Y-%W') 

dd1$week_diff <- difftime(dd1$wk1, dd1$wk2) 

Error in as.POSIXlt.character(x, tz, ...) : 
    character string is not in a standard unambiguous format 

お勧めはありますか?

注:私のデータには集計のためにデータが含まれていないため、元の日付は使用できません。したがって、year_week#の間の差異がある必要があります。

+3

あなたは "今年週間" オブジェクトを持つdon've strftime' '使用した後、あなたは文字列を持っています。 – Gregor

答えて

4

date1date2の違いを直接文字に変換せずに計算します。

dd1$week_diff <- difftime(dd1$date1, dd1$date2, units = "weeks") 

head(dd1) 
     date1  date2  week_diff 
1 2015-01-02 2016-03-02 -60.71429 weeks 
2 2015-01-03 2016-03-03 -60.71429 weeks 
3 2015-01-04 2016-03-04 -60.71429 weeks 
4 2015-01-05 2016-03-05 -60.71429 weeks 
5 2015-01-06 2016-03-06 -60.71429 weeks 
6 2015-01-07 2016-03-07 -60.71429 weeks 
1
library(lubridate) 
dd1$date1 <- ymd(dd1$date1) 
dd1$date2 <- ymd(dd1$date2) 
interval_p = interval(dd1$date1, dd1$date2) 
weeks = interval_p %/% weeks(1) 
関連する問題