名称无效 - 创建新变量

invalid name - creating new variable

我正在使用下面的代码在 Stata 中生成一个新变量,但收到一个错误消息 "hv2 invalid name r(198);"*

gen ph= hv1==2 
replace ph=. if hv2*!=1
label values ph yesno
label var ph "PH present"

其中 hv2* 指的是从 hv2_1 到 hv2_98 的变量(总共 98 个变量)。 hv2* 是家庭变量,值不为 1 表示受访者不是来自调查中使用的家庭。我的新变量 ph 取决于受访者是否是调查中使用的家庭的居民。新变量 (ph) 中应缺少非居民,因此 "替换 ph=。如果 hv2!=1" .也就是说,在 hv2 变量中任何值不为 1 的情况都应该在新变量中丢失。

gen ph = hv1 == 2 
quietly forval j = 1/98 { 
    replace ph = . if hv2_`j' == 1
} 

命令 egen 提供了可以在这里使用的函数,因此(例如)

gen ph = hv1 == 2 
egen any1 = anymatch(hv2_*), values(1) 
replace ph = . if any1 

似乎避免了循环,但您只是在 anymatch() 的代码中有一个循环来做同样的事情。