创建计数器变量

Create counter variable

我正在使用 Stata 13。

我想创建一个变量,当一堆其他变量的 none 等于 0 时,该变量等于 0;当一堆其他变量中的一个变量等于 1 时,此变量为 1;当一堆其他变量中的两个变量为 1 时,它为 2;当一堆其他变量中的三个变量为 1 时,它为 3;等等。

有什么建议吗?

你们的条件并不互斥。两个标准需要分开。

  1. 当一堆其他变量的none等于0时为0的变量。

  2. 当一堆其他变量中的一个变量等于1时,一个变量为1; 2 当两个变量为 1 时; 3 当三个变量为1时;等等

条件 #2 只是计算 1,如下所示:

clear 
input x1 x2 x3 
0 0 1 
0 1 1 
1 1 1 
end 

egen count1 = anycount(x1 x2 x3), value(1) 

list 

     +-----------------------+
     | x1   x2   x3   count1 |
     |-----------------------|
  1. |  0    0    1        1 |
  2. |  0    1    1        2 |
  3. |  1    1    1        3 |
     +-----------------------+

条件 #1 可以通过这种方式对少量变量完成:

gen none0 = inlist(0, x1, x2, x3)

list 

     +-------------------------------+
     | x1   x2   x3   count1   none0 |
     |-------------------------------|
  1. |  0    0    1        1       1 |
  2. |  0    1    1        2       1 |
  3. |  1    1    1        3       0 |
     +-------------------------------+

rowtotal() 在您的评论中计算 1 的方法仅适用于仅 1、0 或缺失的值,这可能适用于您的数据,但不是规定的条件。