我已組成員編碼爲虛變量如下:轉換虛擬變量來連續變量
+--------------------------+
| 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