Stata:如何使用群集中的非缺失值替换缺失值?

时间:2014-02-12 01:25:23

标签: dataset stata

我有一个数据集,用户每周报告一次健康症状。用户还可以选择报告其他家庭成员。数据来自Users文件和Household文件,并由user_id链接。家庭成员缺少statezip的值。我正在努力找到一种方法来填充主要用户报告数据的这些缺失值。

基本上我想说:如果state变量为空,请使用user_id变量相同的报告用户填充数据。

我找到了一篇提到xfill命令(http://www.sealedenvelope.com/stata/xfill/)的帖子,我认为该命令可以解决我的需求,但我不断收到错误state is not constant within user_id。我没有运气研究这个错误来确定它发生的原因。

任何人都可以解释为什么xfill不起作用,或建议替代方法?

1 个答案:

答案 0 :(得分:1)

据推测,这种情况正在发生,因为您的用户在各州之间移动,而xfill仅适用于静态变量。要验证是这种情况,请按以下方式标记它们:

capture ssc install egenmore
bys user_id: egen states = nvals(state)
edit if states>1

这将向您显示报告居住在多个州的用户。

如果你有一个报告变量的日期,你或许可以使用carryforward来处理这个:

bys user_id (report_date): carryforward state, gen(state2)