我已组成员编码为虚变量如下:转换虚拟变量来连续变量
+--------------------------+
| group1 group2 group3 |
|--------------------------|
1. | 0 1 0 |
2. | 0 0 1 |
3. | 0 0 1 |
4. | 0 1 0 |
5. | 1 0 0 |
6. | 1 0 0 |
7. | 1 0 0 |
8. | 1 0 0 |
+--------------------------+
我想三个groupX
变量转换成一个单一的变量,如下所示:
group
2
3
3
2
1
1
1
1
这是做xi i.group
的“相反”,从虚拟变量创建一个分类变量。
我想egen foo = group(group*)
但它似乎产生的变量奇怪的代码:
+--------------------------------+
| group1 group2 group3 foo |
|--------------------------------|
1. | 0 1 0 2 |
2. | 0 0 1 1 |
3. | 0 0 1 1 |
4. | 0 1 0 2 |
5. | 1 0 0 3 |
|--------------------------------|
6. | 1 0 0 3 |
7. | 1 0 0 3 |
8. | 1 0 0 3 |
+--------------------------------+
注意egen
已编码组3为1,第1组为3
该方案具有易于理解的优势。另外,感谢解释为什么'egen,group'正在做它正在做的事情。一个极小的缺点,这是你必须事先知道你有多少组有(即'2/3'有点[幻数(https://en.wikipedia.org/wiki/Magic_number_(编程)# Unnamed_numerical_constants)-esque。) – LondonRob
你寻求什么概括?你的例子是高度结构化的,但你想放松哪些假设?如果你想要'group1'的通用代码,那么你可以编程计算这些变量的数量。没有任何假设,你最终会重新创建'egen,group()'。 –
同意。我想我可能被'egen,group()'的编码过分困扰了,实际上在许多用例中,结果变量的编码方式并没有什么不同。加入 – LondonRob