我有一个数据集,用户每周报告一次健康症状。用户还可以选择报告其他家庭成员。数据来自Users
文件和Household
文件,并由user_id
链接。家庭成员缺少state
和zip
的值。我正在努力找到一种方法来填充主要用户报告数据的这些缺失值。
基本上我想说:如果state
变量为空,请使用user_id
变量相同的报告用户填充数据。
我找到了一篇提到xfill
命令(http://www.sealedenvelope.com/stata/xfill/)的帖子,我认为该命令可以解决我的需求,但我不断收到错误state is not constant within user_id
。我没有运气研究这个错误来确定它发生的原因。
任何人都可以解释为什么xfill
不起作用,或建议替代方法?
答案 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)