代码之家  ›  专栏  ›  技术社区  ›  dcotes

R: 获取工作周编号,而不是自1月1日起的七天时段

  •  0
  • dcotes  · 技术社区  · 10 年前

    嗨,我正在查看几年内商品价格的相关数据。我想按工作周汇总价格,而不是从1月1日起按七天周期定义的周。当我尝试:

    data <- mutate(data, week = week(strptime(Date, "%m/%d/%Y")))
    

    lubridate week()函数将“1/13/10”(mdy)计算为第2周,“1/14/10”计算为第3周。我希望它们在同一周内。基本上在同一周的周一至周五跑步。如果一年从星期三开始,我希望第一周在星期五结婚,第二周从下周一开始。我没有任何周末的数据。有什么想法吗?谢谢

    1 回复  |  直到 10 年前
        1
  •  3
  •   Gopala    10 年前

    假设Date列为Date格式(您可以使用.Date()进行转换),这将为您提供周数:

    data <- mutate(data, week = format(Date, '%U'))
    

    如果您想要周和年,可以使用:

    data <- mutate(data, week = format(Date, '%Y-%U'))
    

    它将正确计算部分周数。

    注意:周号以00开头(但这应该没问题)。

    您也可以在没有dplyr的情况下进行,它会发生变异,如下所示:

    data$week <- format(data$Date, '%U')