2017-06-22 74 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