这个答案分为两个不同的部分。
首先,我非常怀疑您的日期是否与 Stata 每周日期相对应。这些每周日期的定义是
任何一年的第 1 周都从 1 月 1 日开始,无论那是一周中的哪一天。
第 2 周等以 7 天后的倍数开始。
第 52 周始终包括 8 天(非闰年)或 9 天(闰年)。
因此,周总是嵌套在年中。规则#2 本身并不奇怪,但规则#1 和#3 通常是。
我还没有遇到任何在 StataCorp 之外使用这些定义的机构,尽管第一次会很有启发性!
其次,你的语法没有达到你想要的效果。以你的例子为例,这里遇到的问题是display 的工作是将给出的内容解释为要显示的指令,而不是准确地回显它的参数。使用macro list(并忽略不相关的细节),
. local week %tw 2080
. mac li
_week: %tw 2080
表明您的local 分配只是复制了您提供的文本。 display 将其视为指令,但在 display 上下文之外,格式不会咬人。将display、extended_fcn 和macro 的帮助中的材料拼凑在一起,得出语法
. local week : display %tw 2080
. mac li
_week: 2000w1
应用格式并根据要求将格式设置结果放入宏中。
更多关于display:这个序列很有启发性。
. di "%tw 2080"
%tw 2080
. di %tw "2080"
2080
. di %tw 2080
2000w1
首先,%tw 格式作为文字字符串的一部分包含在内,因此不被视为指令。在第二种情况下,格式被忽略,因为它仅与数字参数相关,因此与 " " 以文字字符串形式呈现的内容无关。第三,你会得到你想要的。
有关Stata周的更多信息,请参阅
的结果
. search week, sj
Search of official help files, FAQs, Examples, SJs, and STBs
SJ-12-4 dm0065_1 . . . . . Stata tip 111: More on working with weeks, erratum
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox
Q4/12 SJ 12(4):765 (no commands)
lists previously omitted key reference
SJ-12-3 dm0065 . . . . . . . . . . Stata tip 111: More on working with weeks
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox
Q3/12 SJ 12(3):565--569 (no commands)
discusses how to convert data presented in yearly and weekly
form to daily dates and how to aggregate such data to months
or longer intervals
SJ-10-4 dm0052 . . . . . . . . . . . . . . . . Stata tip 68: Week assumptions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox
Q4/10 SJ 10(4):682--685 (no commands)
tip on Stata's solution for weeks and on how to set up
your own alternatives given different definitions of the
week
如果您在 Stata 中执行此操作,您将获得相关文章的可点击链接。底线是一条建议:通过定义它们的任何每日日期来指代周,通常但不一定是一周的开始或结束。
一个完全不同的细节是你有一个宽数据结构,这在 Stata 中通常比长数据结构更容易出现问题。
注意:我在写这篇文章时对问题进行了编辑,因此某些部分引用了问题中不再存在的材料。