确定从几年后的日期开始的周数

时间:2015-12-09 18:31:08

标签: r date cycle

我正在寻找一种方法来确定几周内的周数(周一开始的一周)。这意味着我不想要0-53,但是如果我们说我有2年的约会,我希望它们在R中以0-106编号。

我尝试了strftime(Datum, format ="%W"),但之后我只获得了年度周数,而不是整体。

1 个答案:

答案 0 :(得分:0)

鉴于您没有提供任何数据,我冒昧地创建了一些:

#create data
Datum<-c("2013-03-01", "2014-06-02", "2013-06-01")
# format data to year-month-day with strptime
Datum<-strptime(Datum, "%Y-%m-%d")

您现在需要确定原产地年份。我确信您知道并非所有年份的闰年周数都为52.29,而标准日历年则为52.4,但由于这不太可能只考虑2年,我们可以使用该数字几周通过strftime函数返回。

origin.year=as.numeric(min(substring(Datum,1,4)))
# number of weeks in first year (offset for second year)
n.weeks<-52

现在我们可以在Datum(X)中创建一个包含每周偏移周数的向量。

X<-as.numeric(substring(Datum,1,4)!=origin.year)*n.weeks

然后我们可以简单地将此向量添加到strftime应用于Datum时返回的周数

    week.vec<-as.numeric(strftime(Datum, "%W"))+X

这将有效期为2年,但如果您的年数超过此数,则需要修改偏移量以解决此问题。