[英]How do I transform week (and year) to date of the first date (i.e. Monday) of the week in R?
[英]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.