使用抽样权重计算观察次数

Counting number of observations with sampling weights

我在 Stata 中有一个 time-id 调查数据集,其采样权重如下:

ID time var1 var2 weight
1  1997  1    10    400
1  1998  2     1    200
1  1999  4     .    50.3
2  1997  2     .    13.2
2  1998  3     5    150

我想计算所有每年 var1==1var1==2 的人,考虑上面给出的 'weight' 的抽样权重。我知道如何在不考虑重量的情况下计算观察结果,如下所示:

gen var1count = .
foreach i of numlist 1997/1999 {
    count if (var1==1 | var1==2) & time==`i'
    replace var1count = r(N) if time==`i'

但是,我不确定在计算满足特定条件的观测值数量时如何合并抽样权重 (pweight)。

这有帮助吗?

clear 
input ID time var1 var2 weight
    1  1997  1    10    400
    1  1998  2     1    200
    1  1999  4     .    50.3
    2  1997  2     .    13.2
    2  1998  3     5    150
end 

egen wanted = total(weight * inlist(var1, 1, 2)), by(time)

tabdisp time, c(wanted)

----------------------
     time |     wanted
----------+-----------
     1997 |      413.2
     1998 |        200
     1999 |          0
----------------------