我有一组家庭数据,包含 4200 个家庭的 20,000 多条记录。在我的数据集中,没有任何家庭 ID 列,所有记录都是每个家庭成员。有一个人的序列号&每个&每个“1”的列,应该改变住户。(即:如果我们开始给住户编号,当第一个人的序列号等于1时,对应的HH_ID应该为“1”。一旦人的序列号=1时的下一条记录相遇,那么HH_ID应该是2。)所以我想添加一个名为HH_ID的列并从1-4200编号。如何使用 STATA 编写程序?
问问题
327 次
1 回答
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
于 2013-02-07T18:22:27.153 回答