foreach i in 孩子1性别 孩子1年龄 孩子1属相 孩子2性别 孩子2年龄 孩子2属相 孩子3性别 孩子3属相 孩子3年龄{
cap replace `i' = . if `i' == -8
}
gen id = _n
order id
gather 孩子1性别 孩子1年龄 孩子1属相 孩子2性别 孩子2年龄 孩子2属相 孩子3性别 孩子3年龄 孩子3属相 ,variable(sector) value(num)
tempfile file1
save `file1',replace
preserve
keep if sector == "孩子1性别" |sector == "孩子2性别" |sector == "孩子3性别"
bys id : egen haizizongshu = count(num) if sector == "孩子1性别" |sector == "孩子2性别" |sector == "孩子3性别"
bys id : egen nanhaizongshu = sum(num) if sector == "孩子1性别" |sector == "孩子2性别" |sector == "孩子3性别"
bys id : gen nvhaizongshu = haizizongshu - nanhaizongshu if sector == "孩子1性别" |sector == "孩子2性别" |sector == "孩子3性别"
duplicates drop id ,force
tempfile file2
save `file2',replace
restore
use `file1',clear
merge m:1 id using `file2'
drop _merge