我正在寻找一种方法来确定几周内的周数(周一开始的一周)。这意味着我不想要0-53,但是如果我们说我有2年的约会,我希望它们在R中以0-106编号。
我尝试了strftime(Datum, format ="%W")
,但之后我只获得了年度周数,而不是整体。
答案 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年,但如果您的年数超过此数,则需要修改偏移量以解决此问题。