创建计数器变量

时间:2016-06-13 08:53:35

标签: variables counter stata

我正在使用Stata 13。

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

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您的条件并非相互排斥。需要分开两个标准。

  1. 当一堆其他变量都不等于0时变量为0.

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

  3. 条件#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 |
         +-------------------------------+
    

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