【问题标题】:invalid name - creating new variable无效名称 - 创建新变量
【发布时间】:2021-07-23 18:23:19
【问题描述】:

我正在使用下面的代码在 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) 中应该缺少非居民,因此 "replace ph=. if hv2!=1"。也就是说,在 hv2 变量中任何值不是 1 的情况都应该在新变量中丢失。

【问题讨论】:

    标签: stata


    【解决方案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() 执行相同的操作。

    【讨论】:

      猜你喜欢
      • 2014-09-29
      • 1970-01-01
      • 2021-12-03
      • 2019-05-26
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      相关资源
      最近更新 更多