我有一个包含许多变量的数据集。对于一些观察结果,我希望将它们的值(在大量变量中)替换为基于唯一标识符的另一个观察值(对于相同的变量)。唯一标识符不等于Stata观察号(_n)。
这类似于其他几个线程,但据我所知,它们的解决方案不是完全可转移的。
下面是一段基于第二个链接的解决方案的代码,但根据我的问题进行了调整(我在最后一个宏中更改了方括号的内容)。我知道这个代码不能工作,因为这里的方括号只能包含Stata数(_n)。但我认为这应能很好地说明我正在努力实现的目标:
在本例中,我希望将unique_id为25和38的观测值替换为unique_id为21的观测值。应该对我的本地变量列表中的所有变量执行此操作。
set obs 50
local vlist v1 v2 v3 v4 v5
foreach v of local vlist {
generate `v' = runiform()
}
gen unique_id=_n+20 // this is just to illustrate that the unique_id is not equal to _n
foreach var of local vlist {
replace `var' =`var'[unique_id==21] if unique_id==25 | unique_id==38
}https://stackoverflow.com/questions/67001914
复制相似问题