【发布时间】:2015-11-22 03:50:40
【问题描述】:
Stata 中的编码:
在我跨越 5 年的不平衡每周面板数据集中,我寻求:
- 填写跳过的周数。我正在为此使用 tsfill 命令。
- 但是,如果连续缺少 5 周以上的周数,我不想填写周数。也就是说,如果缺少 5 周或更短的周数,我们会继续生成那些缺失值为零的周;但如果缺少周数超过 5 周,则忽略它。
第二步对我来说是一个挑战。有什么建议吗?
样本原件:
id week var1 var2 var3
1 1 0 3 0
1 3 1 0 0
1 5 1 0 0
1 20 0 4 0
需要样品:
id week var1 var2 var3
1 1 0 3 0
1 2 0 0 0 (new row!)
1 3 1 0 0
1 4 0 0 0 (new row!)
1 5 1 0 0
1 20 0 4 0
【问题讨论】:
-
你的数据集有多庞大?做一个完整的填充然后删除你不想要的行是否可以管理?
-
近 300,000 个 obs。我认为这是不可行的。
-
一种方法可能是:(1) 使用 tsfill 填写所有内容,然后 (2) gen DROPME = 1 (3) 按 id、时间遍历并设置 DROPME = 0 如果有非5 距离邻域内的观测缺失。 (4) 使用 dropme = 1 删除每一行。
-
谢谢你,马修。你能把它写成答案吗?我很难理解这些符号,尤其是第 3 步。
-
我不是一个真正的 Stata 编码器......我必须到处查找语法。我只是在逻辑上思考,您真正拥有的两个选项是:(1)使用 TSFILL 并删除您不想要的行或(2)基本上编写您自己的 TSFILL 版本
标签: stata missing-data