我有以下数据结构(Picture of structure of my data),其中每一行代表一个家庭和变量" group1"确定家庭中孩子1的教室," group2"孩子2的教室,等等。值得注意的是,总共有大约3000个群体,因为这些群体遍布全国各地。 如果至少有一个"组"我需要将家庭归类为属于同一组。变量具有相同的值(即,如果他们的孩子中的至少一个去同一个班级)。如果,对于两个家庭," group1" =" group1",但如果" group1" =" group2",或" group3"等。
我已尝试使用inlist
并循环浏览所有"组值",但无法到达任何地方。
我将非常感谢您提供的任何帮助。
答案 0 :(得分:1)
这对于长布局中的数据更容易,每个孩子只有一次观察。然后,您可以使用group
(来自SSC)将具有子级的家庭分组到同一班级(如group_id
变量中所示):
* Example generated by -dataex-. To install: ssc install dataex
clear
input long household float(group1 group2 group3 group4)
101 15 16 . .
102 13 14 15 17
103 11 17 . .
104 33 34 35 .
105 34 37 . .
end
reshape long group, i(household) j(child)
drop if mi(group)
clonevar hhgroup = household
group_id hhgroup, matchby(group)
reshape wide group, i(household) j(child)
list
和结果
. list
+--------------------------------------------------------+
| househ~d group1 group2 group3 group4 hhgroup |
|--------------------------------------------------------|
1. | 101 15 16 . . 101 |
2. | 102 13 14 15 17 101 |
3. | 103 11 17 . . 101 |
4. | 104 33 34 35 . 104 |
5. | 105 34 37 . . 104 |
+--------------------------------------------------------+
.