繁体   English   中英

计算没有按年重置的周数(即 week_id = 55 是有效的,并显示它是一年之后)+ 具有指定的开始日期

[英]Calculating week numbers WITHOUT a yearwise reset (i.e. week_id = 55 is valid and shows it is a year after) + with a specified start date

这可能看起来很简单,但我很困惑。

我有一组日期 ~ 每年的 8 月 1 日,需要按周数汇总销售额。 最早的日期是 2008-12-08 (YYYY-MM-DD)。 我需要创建一个“week_id”字段,其中第 1 周从 2008 年 12 月 8 日开始。 并且日期 2011-09-03 是第 142 周。请注意,这是不同的,因为周数的计算不会每年重置

我在这里建立了一个小的示例数据集:

data <- data.frame(
  dates = c("2008-12-08", "2009-08-10", "2010-03-31", "2011-10-16", "2008-06-03", "2009-11-14" , "2010-05-05", "2011-09-03"))
data$date = as.Date(data$date)

任何帮助表示赞赏

data$week_id = as.numeric(data$date - as.Date("2008-12-08")) %/% 7 + 1

这将计算两个日期之间的天差,并找到经过 7 天的 integer 数。 我添加了一个,因为我们希望自开始以来经过零周的日期是第 1 周而不是第 0 周。

        dates       date week_id
1  2008-12-07 2008-12-07       0   # added for testing
2  2008-12-08 2008-12-08       1
3  2008-12-09 2008-12-09       1   # added for testing
4  2008-12-14 2008-12-14       1   # added for testing
5  2008-12-15 2008-12-15       2   # added for testing
6  2009-08-10 2009-08-10      36
7  2010-03-31 2010-03-31      69
8  2011-10-16 2011-10-16     149
9  2008-06-03 2008-06-03     -26
10 2009-11-14 2009-11-14      49
11 2010-05-05 2010-05-05      74
12 2011-09-03 2011-09-03     143

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM