Stata 统计:按周汇总
我有一个数据集,其中有一个日期变量缺少日期Stata 统计:按周汇总,stata,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 3
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
我想知道是否可以在week变量中获取月份名称和年份 不使用
week()
函数,我可能会使用wofd()
函数将%td
每日日期转换为%tw
每周日期。然后,您可以使用datetime显示格式来决定日期的确切格式。例如:
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
我可能不会使用
week()
函数,而是使用wofd()
函数将%td
每日日期转换为%tw
每周日期。然后,您可以使用datetime显示格式来决定日期的确切格式。例如:
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
我可能不会使用
week()
函数,而是使用wofd()
函数将%td
每日日期转换为%tw
每周日期。然后,您可以使用datetime显示格式来决定日期的确切格式。例如:
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
我可能不会使用
week()
函数,而是使用wofd()
函数将%td
每日日期转换为%tw
每周日期。然后,您可以使用datetime显示格式来决定日期的确切格式。例如:
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
通常,week()
是解决方案的一部分,当且仅当您根据Stata的周规则定义周时。是的
(
dailydate-dow(
dailydate)
)。如果您的工作周从周一开始,…,周六,请调整定义
. 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 |
+-----------------------------------+
更多的讨论,尽管第一次应该足够了 通常,week()
是解决方案的一部分,当且仅当您根据Stata的周规则定义周时。是的
(
dailydate-dow(
dailydate)
)。如果您的工作周从周一开始,…,周六,请调整定义
. 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 |
+-----------------------------------+
更多的讨论,尽管第一次应该足够了 通常,week()
是解决方案的一部分,当且仅当您根据Stata的周规则定义周时。是的
(
dailydate-dow(
dailydate)
)。如果您的工作周从周一开始,…,周六,请调整定义
. 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 |
+-----------------------------------+
更多的讨论,尽管第一次应该足够了 通常,week()
是解决方案的一部分,当且仅当您根据Stata的周规则定义周时。是的
(
dailydate-dow(
dailydate)
)。如果您的工作周从周一开始,…,周六,请调整定义
. 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 |
+-----------------------------------+
更多的讨论,尽管第一次应该足够了 这并没有解决Stata中周的特殊定义,这不太可能符合实质性需求。请看我的答案和参考资料。@NickCox啊,没错。谢谢这并没有解决Stata中周的特殊定义,这不太可能符合实质性需求。请看我的答案和参考资料。@NickCox啊,没错。谢谢这并没有解决Stata对周的特殊定义,这是不可能的