社会统计分析与数据处理技术(Stata)5 数据的合并与转换.ppt
《社会统计分析与数据处理技术(Stata)5 数据的合并与转换.ppt》由会员分享,可在线阅读,更多相关《社会统计分析与数据处理技术(Stata)5 数据的合并与转换.ppt(88页珍藏版)》请在三一办公上搜索。
1、第五章 数据的分组、合并与转换,本章主要内容,5.1数据合并的类型和原理5.2纵向合并(append)增加样本量5.3横向合并(merge)增加变量5.4数据的转换5.5数据的分组5.6数据的集合,5.1数据合并的类型和原理,内容相似的独立调查:城乡;性别不同层次、不同年份的调查母亲的数据与子女的数据低层数据的高层特征,为什么需要合并数据,一个内容相同或类似的调查分别在城、乡进行,或在男性和女性间进行。数据也在不同地方由不同人员录入。若需比较城乡之间、性别之间在某些方面的差异,最好的方法之一就是将城乡样本合二为一,将男性和女性样本合二为一个体居住的社会环境可能影响他们的日常生活和行为。越来越多
2、的社会调查除了关注个体本身的差异外,也开始关注他们的生存环境,包括家庭和社区背景等。家庭寓于社区中,个人寓于家庭中。数据分析时,需要将分别录入的数据合并成包括不同层次、不同内容的数据,数据合并的类型,增加观察值(即样本量):纵向合并若有一个城市儿童数据和一个农村儿童数据,二者的内容基本相同可进行独立分析或整合后作为整体样本的次样本分析增加变量:横向合并若有一个社区数据和一个家庭数据,家庭寓于社区中,若想将二者合二为一,从而使家庭数据包含社区的基本特征,则需将数据进行横向合并,数据合并的窗口路径,数据合并的几个主要概念,主要数据(Master dataset):指当前在Stata界面的数据,又称
3、当前数据(current dataset)、窗口数据或记忆空间数据使用数据(using dataset):指当前不在Stata界面、但行将被合并到当前数据的数据,也称辅助数据。该名词主要用于数据的合并关键变量(Key variables),也称标识符(identifiers)或合并变量(match variables):横向合并的专有词汇,用来合并两个数据的变量。该变量必须同时存在于主要数据和使用数据中,且在使用前必须排序。主要变量可以是一个,也可以是两个或多个,扩大记忆空间的容量,由于合并数据将增加当前数据的观察值或(和)变量,扩大数据的占用空间,故在进行合并前,首先要确定是否有足够的记忆空
4、间允许数据的合并否则,可能遇到错误提示Caution!Merging and appending both add data to the data already in Statas memory.It is easy to ask Stata to put more data in memory than youve allowed room for.Add together the sizes of all the files you want to merge or append before you combine them,clear and set memory if neces
5、sary,then combine the files.If not,you may get the message No room to add more variables/observations.,5.2纵向合并(append)增加样本量,原理,将保存在某个盘符中的stata数据文件的内容追加到当前数据窗口的后面,生成一个新数据在绝大部分的纵向合并中,用于两个数据库的格式和变量基本类似,但观察值却未必一样观察值可以是独立的,来自于同一调查的不同样本,也可能不是完全独立的,来自于不同调查时间的相同样本合并后,数据的变量基本不变,但观测个案增加了该方法可以将两个或多个数据文件进行上下对接,
6、简单明了,不易出错,方法,窗口路径DataCombine datasetsAppend datasets(纵向合并数据的对话框),命令,.append using 使用数据的路径和名称:纵向合并数据的基本命令:使用数据的路径和名称(目前记忆空间的数据是主要 数据)也可以只读入使用数据中的部分变量.append using 使用数据的路径和名称,keep变量名:在合并使用数据时,只保留keep后面指定的变量,几点说明(I),使用纵向合并的场合纵向追踪调查内容相同的调查在不同地区由不同人群完成几点说明:无需排序数据,因为无需按照任何标识符(identifier)进行各并,而只是将两个数据上下对接到
7、一起进行纵向合并时,Stata的log文件往往提示说,标签已经定义了。可以忽略,几点说明(II),不同数据中,内容相同的变量需要有同样的名称。故在合并以前,分别描述数据:若两个文件的变量相同、名称也相同,合并后,新文件的变量数应该与合并前任何一个数据的变量数目一致若每个文件都有一些独特的变量,但相同变量的名称是一样的,则新文件的变量数应该多于合并前任何一个数据的变量数(keep)若每个文件的变量数目相同、变量包含的内容也相同,但变量的名称却不同,合并后,变量数目也会多出来,且需给内容相同、但名称不同的变量更名,5.3横向合并(merge)增加变量,场合,不同层次数据:母亲(或家庭或社区)与儿童
8、数据母亲是儿童的母亲,家庭是儿童的家庭,社区是儿童居住的社区不同层次数据合并;低层次数据寓于高层次数据中配对数据:妻子与丈夫、兄弟姊妹同层数据合并纵向追踪调查:不同时期的调查数据大部分不同时期的调查对象是相同的可以是单层次、也可以是不同层次数据的合并,以调查的内容而异其它场合,原理,从一个数据库中提取一些变量到另一个数据库中,故横向合并也就是变量的合并将盘符文件的内容连接到当前数据编辑窗口的右边,形成新数据新数据的变量增加,但观察个案可以不变实际上是将两个数据文件,按照个案对应进行左右对接实现数据文件的横向合并的前提是,主要数据和使用数据必须有一个(或多个)相同的关键变量横向合并中,除关键变量
9、外,其它变量的名称都不能相同若两个数据包含其它的同名变量,则使用数据中的变量数值将被主要数据的同名变量数值取代,窗口路径,Data Combine datasets Merge two datasets(Merge multiple datasets)对话框及其解释One-to-one on key variables(利用关键变量进行一对一的合并)One-to many on key variables(unique key for data in memory)(利用记忆空间的关键变量进行一对多的合并)Many-to-one on key variables(unique key for
10、data on disk)(利用使用数据的关键变量进行一对多的合并)One-to-one by observation(一对一观察值的合并),选项对话框,Keep the following variables:(If not specified,all variables are kept)Specify name of new variable to mark result of merge:Do not copy value lable definition from fileDo not copy notes from fileReplace missing data in memor
11、y with data from fileReplace nonmissing data in memory with data from fileDrop observations in dataset on disk that do not match第1、3、4项都与append命令下的选项相同;其它几项是merge命令独特的选项,横向合并与纵向合并的异同,横向数据合并的基本命令是merge。利用该命令,将新变量添加到当前数据中与append 命令一样,在合并数据前,首先需要有足够的记忆空间,承载新增加的内容注意:横向数据合并中,主要数据和使用数据都必须按照主要变量进行排序,否则合并无法
12、进行,还会得到错误的提示,纵向数据合并无需对哪个变量进行排序横向数据合并需要关键变量,纵向数据合并无需关键变量.append将两个变量类似、但观察个案不同的数据整合在一起;.merge将具有不同变量的两个数据整合在一起,横向合并的第一步,先看使用数据:.use 文件路径名称 打开使用数据库.sort 关键变量将关键变量进行排序,该变量是两个数据库共有的标识符.save 文件路径名称,replace 保存并关闭已经按关键变量排序的使用数据库,横向合并的第二步,再看主要数据:.use 文件路径名称 打开主要数据库.sort 关键变量对关键变量进行排序.merge 关键变量 using 文件路径名称
13、,keep 变量关键变量即为sort后面的变量;利用该变量匹配两个数据文件名是盘符数据库的名字keep选项,横向合并的基本选项,.merge 关键变量A 关键变量B using 文件路径和名称.merge 关键变量 using 文件路径和名称,update.merge 关键变量 using 文件路径和名称,update replace.merge 关键变量 using 文件路径和名称,nokeepunique,uniqmaster,uniqusing,系统变量 _merge,当Stata 合并文件时,软件自动生成系统变量_merge该变量有取值,因是否使用update 或replace 选项而
14、异根据取值,可以了解合并的结果:1=观察值仅来自于主要数据,使用数据没有匹配的数据 2=观察值仅来自于使用数据,主要数据没有匹配的数据3=观察值来自主要数据和使用数据,且数值匹配4=观察值来自主要数据和使用数据,且主要数据的缺失值得到更新5=观察值来自于主要数据和使用数据,但两个数据的数值不匹配,一对一合并(one-to-one on key variables),.merge husbid using I:statahhwk_husb00.dta,unique,一对多合并(One-to-many on key variables)(1)使用数据分布情况,一对多合并(One-to-many o
15、n key variables)(2)主要数据分布情况,.merge mothid using“I:stataru_merge.dta”,uniqmastervariable mothid does not uniquely identify observations in F:stataru_merge.dta,多对一合并(Many-to-one on key variables)(unique key for data on disk),.merge mothid using I:statamuqin_merge,uniqusing variable mothid does not uni
16、quely identify observations in the master data,一对多 vs.多对一,一对一观察值的合并(One-to-one by observation),.merge using data2,注意事项:同名变量,除标识符外,两个数据中的变量名称不能相同;否则,使用数据变量的数值将被主要数据中同名变量的数值所取代。这样既达不到增加变量的目的,还会混乱数据在行将合并的数据中,同样的变量内容需要有不同的名称熟悉、了解主要数据和使用数据。若有重名变量,则新生成的数据变量比两个数据加起来的变量少(除关键变量外),注意事项:合并后的变量数目,数据合并后,新数据的变量必须
17、增加。新数据具体有多少变量因两个原始数据中变量的数目而异也因合并数据过程中读入的变量数目而异但合并后的数据无疑会比主要数据和使用数据有更多变量若主要数据和使用数据各有5个变量,在合并数据的过程中,也没有限定读入的变量,且只有一个关键变量,则新数据将有9个变量(=5+5-1),注意事项:合并后的样本量,在一对一的配对合并中,合并后的数据样本量因原始数据样本量的多寡而异也因合并方式而异但通常不会少于主要数据的样本量若使用数据中的观察值与主要数据不完全匹配的话,则会出现多余的样本量,注意事项:_merge变量,在合并数据的过程中,系统自动生成_merge变量当合并完成后,可删除_merge变量删除_
18、merge变量一则是因为该变量已经没有什么用处了,再则在以后的某个时间,我们也可能将新生成的数据与另一个文件合并在新一轮的合并中,Stata又会产生一个_merge变量若原先的_merge变量没有删除的话,则Stata拒绝执行新的合并命令,且输出一个错误的提示,提示_merge已经存在,注意事项:unique,uniqmaster,uniqusing选项,选项unique:只能用于使用关键变量的一对一的合并中。有时会得到下面的错误提示:variable mothid does not uniquely identify observations in the using datar(459);
19、(mothid在使用数据中不是独一无二的)一对多的合并可以使用uniqmaster 选项;多对一的合并可以使用uniqusing选项。即便不使用选项,也会得到以下提示:variable mothid does not uniquely identify observations in the using datavariable mothid does not uniquely identify observations in the master data,注意事项:样本的取舍,.keep if _merge=3或.drop if _merge=1|_merge=2(N observatio
20、ns deleted)这样实际上是去掉了两个原始数据中不匹配的观察值。剩余的观察值就是在两个文件中都有的,注意事项:重复值(I),合并后的数据是否有重复的观察值?(注意:若一个高层数据与低层数据合并如儿童数据与母亲数据合并则对兄弟姊妹来说,母亲的ID一定是重复的。)查找重复值的方法:方法一:使用list _n-1命令.sort kidid.list kidid if kidid=kidid_n-1 若有输出结果,则有重复值;否则无注意,若某个变量有一个以上的缺失值,则从第二个缺失值开始,它们被当作是重复的,注意事项:重复值(II),方法二:使用assert命令.bysort kidid:ass
21、ert _N=1按照kidid 的分组,检查_N=1的命题正确与否对于每个kidid,必须有一个、且只能有一个观察值1 contradiction in 15 by-groupsassertion is falser(9);(在15个by分类中,有一个与上面的命题不符)(命题不正确),注意事项:重复值(III),方法三:使用duplicates report命令提供一个表格,描述观察值出现的次数,是否有重复值.duplicates report kididDuplicates in terms of kidid-copies|observations surplus-+-1|14 0 2|2
22、1-14个数据(surplus等于0);一个数值出现两次,注意事项:重复值(IV),方法四:使用isid命令,检查关键变量是否独一无二地区分每个观察值.isid kididvariable kidid should never be missingr(459);(变量kidid永远不应该是缺失的)这是一个错误提示。当该变量不缺失、但数据中存在重复观察值时,得到的将是:variable id does not uniquely identify the observationsr(459);相反,若没有重复观察值,则该命令不会有任何输出结果,注意事项:重复值(V),方法五:使用tab命令.tab
23、 kidid,m该方法如同list一样,当数据的观察值不多时,很好使用,但若观察值太多,则是耗时耗力的,即便不是毫无结果的,两个或多个关键变量的合并,一个标识符通常就可代表一个观察值,但有时需要两个甚至多个标识符才能代表一个观察值。比如,有一个不同社区的个体数据。于是,有一个独一无二的社区标识符(commid),还有一个个体的身份标识符(personid);个体标识符在不同社区可能是同样的。在这种场合,使用commid和personid一起表示独一无二的个体观察值合并数据时需要同时使用这两个关键变量,且使用数据和主要数据都必须按照两个关键变量进行排序。此外,sort后面变量的顺序与merge后
24、面变量的顺序应该是一样的:.sort commid personid.merge commid personid using 使用数据的路径和名称检查commid与personid一起,是否表示同一个观察值:.by commid personid:assert _N=1,多个数据的合并(I),数据1(主要数据).use ds1.sort id.save ds1,replace数据2:.use ds2.sort id.save ds2,replace,数据3:.use ds3.sort id.save ds3,replace数据4:.use ds4.sort id.save ds4,replac
25、e,从第8版开始,Stata一次可以合并两个或多个数据假如有四个数据:ds1,ds2,ds3,ds4。其基本步骤:,多个数据的合并(II),回到主数据(数据1):.use ds1.sort id.merge id using ds2 ds3 ds4.tabulate _merge.list id _merge*merge*中的*符号表示,列出所有_merge变量的频数分布这是因为,在合并多个数据时,Stata自动生成一组描述性变量。这组变量都以_merge命名,分别称为_merge1,_merge2,_merge3等。它们分别与第一个using数据、第二个using数据、第三个using数据相
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 社会统计分析与数据处理技术Stata5 数据的合并与转换 社会 统计分析 数据处理 技术 Stata 数据 合并 转换

链接地址:https://www.31ppt.com/p-2909455.html