Stata 组合重叠的分类变量
我试图将Stata中的两个分类变量(比如Stata 组合重叠的分类变量,stata,Stata,我试图将Stata中的两个分类变量(比如var1和var2)组合成一个新的(也是分类的)变量(比如res) 下面的例子说明了我试图实现的目标: var1 var2 res 1 1 A 1 2 A 2 1 A 3 3 B 4 2 A 5 4 D 本例所做的是将所有类别的“重叠”的var1和var2组合起来 这里,对var1==1和var2==
var1
和var2
)组合成一个新的(也是分类的)变量(比如res
)
下面的例子说明了我试图实现的目标:
var1 var2 res
1 1 A
1 2 A
2 1 A
3 3 B
4 2 A
5 4 D
本例所做的是将所有类别的“重叠”的var1
和var2
组合起来
这里,对var1==1
和var2==1
最初形成一个组(res==a
)。包含var1==1
或var2==1
的所有其他对应属于同一组(因此第2行和第3行中的res==A
)。因为在第2行中有var2==2
,所以包含var2==2
的任何对都应该属于同一组。这就是为什么在第4行res==A
看待此问题的另一种方法是使用以下矩阵:
| 1 2 3 4
-----------------------
1 | 1 1
2 | 1
3 | 1
4 | 1
5 | 1
因为元素[1,1]
不是空的(或零),所以行1
和列1
中的所有元素必须属于同一组。因为[1,2]
不是空的,所以行1
列2
也是空的。等等等等。决定从哪个行/列开始并不重要
egen集团
本身并不能解决这一问题
有什么想法吗 如果
var2
的值相同,听起来您希望进一步分组var1
。如果是这样,那么您可以使用我编写的名为group\u id
的程序,该程序可从SSC获得。要安装它,请在Stata的命令窗口中键入:
ssc install group_id
下面是一个如何使用它的示例:
* Example generated by -dataex-. To install: ssc install dataex
clear
input float(var1 var2) str1 res
1 1 "A"
1 2 "A"
2 1 "A"
3 3 "B"
4 2 "A"
5 4 "D"
end
gen long wanted = var1
group_id wanted, matchby(var2)
list, sep(0)
结果是:
. list, sep(0)
+----------------------------+
| var1 var2 res wanted |
|----------------------------|
1. | 1 1 A 1 |
2. | 1 2 A 1 |
3. | 2 1 A 1 |
4. | 3 3 B 3 |
5. | 4 2 A 1 |
6. | 5 4 D 5 |
+----------------------------+
是的,这似乎是最好的解决方法。