2017-06-22 78 views
0

我有一個數據集,其中包含一組從01/01/201501/01/2017(dd/mm/yyyy)的時間戳記。我想將其轉換爲周(01/01/201501/01/2015第0周,08/01/2015變爲第1周... 01/01/2017應該變爲第104周(或圍繞此數字)。從R中的時間戳中獲取週數超過一年R

我嘗試以下方法

> sD 
    "2016-04-13 05:30:00 IST" "2017-04-10 05:30:00 IST" 
> format(as.Date(sD,format = guess_formats(sD,c('dmy'))), "%W") 
    "15" "15" 

這裏同日,但對不同年份我收到同一個星期。我需要輸出也隨着年份而改變。如何去做這件事?

+0

,我發現了一個數學黑客:'as.numeric(格式(SD, 「%U」))+((as.numeric(格式(sD,「%Y」)) - 2015)* 52)' –

回答

2

只是走差異化,並指定單位爲周:

x <- as.Date(c("2015-01-01","2015-01-08","2017-01-01")) 
difftime(x, as.Date("2015-01-01"), units="weeks") 
#Time differences in weeks 
#[1] 0.0000 1.0000 104.4286