Stata:按周汇总

时间:2015-02-02 20:55:24

标签: stata

我有一个数据集,其日期变量缺少日期。

var1
15sep2014
15sep2014
17sep2014
18sep2014
22sep2014
22sep2014
22sep2014
29sep2014
06oct2014

我使用此命令聚合数据。

gen week = week(var1)

,结果看起来像这样

var 1      week
15sep2014   37
15sep2014   37
17sep2014   38
18sep2014   38
22sep2014   38

我想知道是否有可能获得月份名称和一周中的年份变量。

2 个答案:

答案 0 :(得分:3)

一般情况下,week()是解决方案的一部分,当且仅当您根据Stata的规则定义周数周时。他们是

  1. 一年中的第1周从1月1日开始,无论如何。
  2. 无论如何,一年中的第2周从1月8日开始。
  3. 依此类推,但一年中的第52周包括8天或9天,具体取决于 这一年是否是飞跃。
  4. 你使用这些规则吗?我猜不会。然后最简单的做法是按周开始的一周定义一周。如果您的周数从星期日开始,则使用规则(每日日期- dow(每日日期))。如果您的周数从星期一,......,星期六开始,请调整定义。

    . clear 
    
    . input str9 svar1
    
         svar1
    1. "15sep2014"
    2. "15sep2014"
    3. "17sep2014"
    4. "18sep2014"
    5. "22sep2014"
    6. "22sep2014"
    7. "22sep2014"
    8. "29sep2014"
    9. "06oct2014" 
    10. end 
    
    . gen var1 = daily(svar1, "DMY") 
    
    . gen week = var1 - dow(var1) 
    
    . format week var1 %td 
    
    . list
    
        +-----------------------------------+
        |     svar1        var1        week |
        |-----------------------------------|
     1. | 15sep2014   15sep2014   14sep2014 |
     2. | 15sep2014   15sep2014   14sep2014 |
     3. | 17sep2014   17sep2014   14sep2014 |
     4. | 18sep2014   18sep2014   14sep2014 |
     5. | 22sep2014   22sep2014   21sep2014 |
        |-----------------------------------|
     6. | 22sep2014   22sep2014   21sep2014 |
     7. | 22sep2014   22sep2014   21sep2014 |
     8. | 29sep2014   29sep2014   28sep2014 |
     9. | 06oct2014   06oct2014   05oct2014 |
        +-----------------------------------+
    

    更多讨论hereherehere,尽管第一个应该足够了。

答案 1 :(得分:0)

我可能会使用week()功能将您的wofd()每日日期转换为%td每周日期,而不是使用%tw功能。然后,您可以使用日期时间显示格式来确定如何格式化日期。例如:

gen date_weekly = wofd(var1)
format date_weekly %twww:_Mon_ccYY

该代码应该为您提供:

var1        date_weekly
15sep2014   37: Sep 2014
15sep2014   37: Sep 2014
17sep2014   38: Sep 2014
18sep2014   38: Sep 2014
22sep2014   38: Sep 2014

此帮助文件非常有用:

help datetime display formats

如果你想了解%tw%td日期之间的差异,你可以在这里刷新自己:

help datetime