我有一套家庭数据,有超过20,000个4200个家庭的记录。在我的数据集中,没有任何家庭ID和列的列。所有记录都是每个家庭成员。有一个列的人的序列号和&与每个&每一个“1”,家庭都应该改变。(即:如果我们开始给家庭编号,当第一个人的序列号为1时,相应的HH_ID应为“1”。一旦下一个记录当人的序列号no = 1满足,那么HH_ID应该是2.)所以我想添加一个名为HH_ID&的列。从1-4200编号。我怎么能用STATA编写程序?
答案 0 :(得分:4)
您想要的是(假设人员标识符的变量personid
)
. gen hhid = sum(personid == 1)
就是这样。解释比代码长。表达式personid == 1
在为true时计算为1,在为false时计算为0。对于第一个家庭,第一个人,这将是1,对于同一家庭中的其他人0.对于第二个家庭,第一个人,这将是1,依此类推。函数sum()
给出了累积或运行总和,因此你应该以1,1,1,2,2,2,2,3,3,3 ......的结尾来结束......显然实际的数字1s,2s,3s等将取决于家庭中的人数。
Stata中的真假见
http://www.stata.com/support/faqs/data-management/true-and-false/index.html