微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无效名称 - 创建新变量

如何解决无效名称 - 创建新变量

我正在使用下面的代码在 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=.if 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() 的代码内部有一个循环来做同样的事情。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。