我试图将有关某人是否出生在英国从第1波到第2波的数据进行估算。我怀疑egen
功能是否可行,但我不确定代码会是什么样的?
正如您所看到的,我需要为wave 1中的person id 1分配相同的born in the uk
响应到wave 2.
我知道我可以通过将数据集重新整理为宽格式来实现,但您知道是否还有其他方法吗?
答案 0 :(得分:1)
这是Stata常见问题as accessible here。
您可以在数据集中向下复制而不创建任何新变量。
bysort id (wave) : replace born_in_uk = born_in_uk[_n-1] if missing(born_in_uk)
mipolate
(SSC)有一个groupwise
选项,用于检查是否存在多个非缺失值。在www.statalist.org中搜索提及。
请注意egen
是一个命令,而不是一个函数。
答案 1 :(得分:0)
我不确定这里出生的英国是带有标签或字符串的数字。但是,如果你做的话会怎么样:
encode born_in_UK, gen(born_num)
bysort person_id: egen born_num2=mean(born_num)
drop born_num
rename born_num2 born_num
我们的想法是将重复的个人ID视为组,并使用mean函数填充组中的缺失值。我认为这应该有用。