Stata - 如果几个变量中至少有一个具有相同的值,则链接观察

时间:2018-03-03 21:06:59

标签: stata categorization

我有以下数据结构(Picture of structure of my data),其中每一行代表一个家庭和变量" group1"确定家庭中孩子1的教室," group2"孩子2的教室,等等。值得注意的是,总共有大约3000个群体,因为这些群体遍布全国各地。 如果至少有一个"组"我需要将家庭归类为属于同一组。变量具有相同的值(即,如果他们的孩子中的至少一个去同一个班级)。如果,对于两个家庭," group1" =" group1",但如果" group1" =" group2",或" group3"等。

我已尝试使用inlist并循环浏览所有"组值",但无法到达任何地方。

我将非常感谢您提供的任何帮助。

1 个答案:

答案 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 |
     +--------------------------------------------------------+

.