_merge==2
[删除仅仅来自辅助库的观察] drop merge
[删除_merge] save (文件名), replace
[将合并后的文件保存,通常另存]
讲到这里似乎对于数据的生成和处理应该闭嘴了。大家可能更想听听估计、检验这些事情。但我并不想就此止住,因为实际中总是有一些简单套用命令无法轻易办到的特殊要求。此时至少有两条路可以通向罗马:一是找到更高级的命令一步到位;二是利用已知简单命令多绕几个圈子达到目的。 下面讲一个令我刻骨铭心的经历,这也是迄今我所碰到的生成新数据中最繁复的了。原始数据中包含了可以识别属于同一个家庭中所有个人的信息和家庭成员与户主关系的信息。目的是利用这些信息建立亲子关系。初步的构想是新数据库以子辈为观察,找到他们的父母,把父母的变量添加到每个观察上。我的做法如下: use a1,clear
[打开全部样本数据库]
第 9 页
keep if
gender==2&agemos>=96&a8~=1&line<10 [保留已婚的一定年龄的女性] replace a5=1 if a5==0
[变量a5标记和户主的关系。等于0是户主,等于1是户主的配偶。这里不加区分地将户主及其配偶放在一起。] keep if a5==1|a5==3|a5==7
[保留是户主(=1),是户主的子女(=3),或是户主的儿媳(=7)的那些人。] ren h hf
[将所需变量加上后缀f,表示女性] ren line lf
[将所需变量加上后缀f,表示女性] sort wave hhid save b1,replace [排序并保存]
第 10 页
keep if a5f==1
[留下其中是户主或户主配偶的] save b2,replace [保存] use b1,clear
keep if a5f==3|a5f==7 save b3,replace
[留下其中是户主女儿或儿媳的并保存] use a3,clear
[打开与户主关系是户主子女的儿童数据库] sort wave hhid
merge wave hhid using CHNS01b2, keep(hf lf) ta _merge
drop if _merge==2 sort hhid line
第 11 页
wave
[处理两代户,将户主配偶女性库与儿童库合并] by hhid line wave: egen x=count(id) drop x _merge
[计算每个年份家庭匹配的情况,x只取值1,表明两代户匹配成功] save b4,replace [保存] use a4,clear
[打开与户主关系是户主孙子女的儿童数据库] sort wave hhid
merge wave hhid using CHNS01b3, keep(a5f a8f schf a12f hf agemosf c8f lf) ta _merge drop if _merge==2
[处理三代户,将户主女儿或儿媳女性库与孙子女儿童库合并]
第 12 页
相关推荐: