使用Stata根据变量的组合类型生成新变量

时间:2015-07-31 09:07:44

标签: stata

假设我有一个包含三个变量abc的数据集,并且有5个观察值。如下所示:

    a   b   c
    1   0   1
    1   1   1
    0   1   0
    0   1   1
    1   0   0

现在我想生成一个名为type的新变量,它是变量abc的可能组合。具体来说,

  • type=1 if a=b=c=0
  • type=2 if a=c=0 & b=1
  • type=3 if a=b=0 & c=1
  • type=4 if a=0 & b=c=1
  • type=5 if a=1 & b=c=0
  • type=6 if a=b=1 & c=0
  • type=7 if a=c=1 & b=0
  • type=8 if a=b=c=1

我想得到的新数据集是:

    a   b   c   type
    1   0   1   7
    1   1   1   8
    0   1   0   2
    0   1   1   4
    1   0   0   5

在Stata中有没有一般的方法来实现这一点?如果type很大,例如100种类型,也可以扩展它。很多。

1 个答案:

答案 0 :(得分:3)

如果type的具体值无关紧要,则egen的{​​{1}}功能有效。

E.g

group

结果

clear 
input   a   b   c
    1   0   1
    1   1   1
    0   1   0
    0   1   1
    1   0   0
    0   1   0
    1   1   1
end

sort a b c // not necessary, but clearer presentation
egen type = group(a b c)

li