假设我有一个包含三个变量a
,b
,c
的数据集,并且有5个观察值。如下所示:
a b c
1 0 1
1 1 1
0 1 0
0 1 1
1 0 0
现在我想生成一个名为type
的新变量,它是变量a
,b
和c
的可能组合。具体来说,
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种类型,也可以扩展它。很多。
答案 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