第二章 数据管理 _stata统计分析与应用_第1页
第二章 数据管理 _stata统计分析与应用_第2页
第二章 数据管理 _stata统计分析与应用_第3页
第二章 数据管理 _stata统计分析与应用_第4页
第二章 数据管理 _stata统计分析与应用_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、STATA 从入门到精通第二章第二章 数据管理数据管理Page 2STATA从入门到精通从入门到精通主要内容主要内容l 变量和变量的取值变量和变量的取值l创建一个新的数据集创建一个新的数据集l 导入已创建的数据集导入已创建的数据集l Stata中的表达式中的表达式l Stata中的常用函数中的常用函数l 使用使用in、if和和by语句定义数据子集语句定义数据子集Page 3STATA从入门到精通从入门到精通主要内容主要内容n变量的相关操作变量的相关操作n数值和字符串的转换数值和字符串的转换n生成分类变量和虚拟变量生成分类变量和虚拟变量n数据的整理数据的整理Page 4STATA从入门到精通从入

2、门到精通2.1.1 数据结构和命名规则数据结构和命名规则n 表表2-1 数据结构数据结构变量名称变量名称变量变量1变量变量2变量变量3变量变量4 观测案例观测案例1变量取值变量取值观测案例观测案例2观测案例观测案例3观测案例观测案例4n Stata的命名原则:的命名原则:n 变量名可达变量名可达32个字符;个字符;n 字符组成部分为字符组成部分为AZ、az、09与下划线与下划线“_”,这些字符之外的其他符号,这些字符之外的其他符号不可以出现在变量名中;不可以出现在变量名中;n 变量名不能以数字开头,所以变量名不能以数字开头,所以5shanghai是不合法的,而是不合法的,而shanghai5是

3、是合法合法的;的;1. 变量名区分大小写,所以变量名区分大小写,所以shanghai和和Shanghai以及以及ShangHai是三个不同的是三个不同的变量名。变量名。Page 5STATA从入门到精通从入门到精通2.1.2 变量的取值类型变量的取值类型n 字符型数据:存储格式是字符型数据:存储格式是str#,其中,其中str表示表示Stata使用字符型变量的格式,使用字符型变量的格式,而而#表示表示Stata该变量的存储最多可容纳的字符数。该变量的存储最多可容纳的字符数。n 数值型数据数值型数据n 缺失数据:缺失数据:Stata有有27个数值型代码:个数值型代码:. 、.a、.b、.c、.d

4、、.z。保存类型保存类型占用字节占用字节最小值最小值最大值最大值字节(字节(byte)1 1-127-127100100整数(整数(int)2 2-32,767-32,76732,74032,740长整数(长整数(long)4 4-2,147,483,647-2,147,483,6472,147,483,6202,147,483,620浮点(浮点(float)4 4-1.70141173319-1.70141173319101038381.701411733191.7014117331910103838双浮点(双浮点(double)8 8-8.9984656743-8.998465674310

5、103073078.99846567438.99846567431010307307Page 6STATA从入门到精通从入门到精通2.1.3 变量的显示变量的显示n 数值变量的显示格式数值变量的显示格式n 字符变量的显示格式:字符变量的显示格式只有一种。其表达式为字符变量的显示格式:字符变量的显示格式只有一种。其表达式为%#s。其中,。其中,%是一个提示符;是一个提示符;#表示显示的字符数,即宽度;表示显示的字符数,即宽度;s表示表示字符变量的显示格式。字符变量的显示格式。n 使用使用format命令规范变量的显示格式为变量规定显示格式:命令规范变量的显示格式为变量规定显示格式: format

6、 varlist %fmt 或者或者 format %fmt varlistn 显示变量目前所采用的格式:显示变量目前所采用的格式:format varlist格式格式表达式表达式表达式举例表达式举例1234512345普通格式普通格式%w.dg g%w.dgcgc%9.0g%9.0g%9.2gc%9.2gc1.41421.41421.41421.4142123451234512, 34512, 345固定格式固定格式%w.df f%w.dfcfc%9 9.4f4f%9 9.0fc0fc1.41421.41421 112345.000012345.000012,34512,345科学指数科学指

7、数%w.de e%9.2f%9.2f1.41e+001.41e+001.23e+041.23e+04Page 7STATA从入门到精通从入门到精通2.1.3 变量的显示变量的显示【例【例2.1】有如表】有如表2-4所示的一个数据集所示的一个数据集format.dta,每个变量在,每个变量在Stata中中的显示类型如下:的显示类型如下:state为为%14s表名美国各州的名称,因而是字符型表名美国各州的名称,因而是字符型变量;变量;pop为为%11.0g表明该州的总人口,是数值型变量;而表明该州的总人口,是数值型变量;而medage是各州人口的年龄中位数,显示格式是是各州人口的年龄中位数,显示格

8、式是%9.0g,以浮点型方式存储。,以浮点型方式存储。我们希望将各个变量的显示方式做如下转换:我们希望将各个变量的显示方式做如下转换:stata %14s%-14s(即由右对齐改为左对齐);(即由右对齐改为左对齐);pop %11.0g%12.0gc(增加三位一个的数字分界符)(增加三位一个的数字分界符); medage %9.0g%8.1f(要求显示一位小数)。(要求显示一位小数)。Page 8STATA从入门到精通从入门到精通statestatepoppopmedagemedageAlabamaAlabama3893888389388829.329.3AlaskaAlaska4018514

9、0185126.126.1ArizonaArizona2718215271821529.229.2ArkansasArkansas2286435228643530.630.6CaliforniaCalifornia236679022366790229.929.9ColoradoColorado2889964288996428.628.6ConnecticutConnecticut310757631075763232DelawareDelaware59433859433829.829.8FloridaFlorida9746324974632434.734.7GeorgiaGeorgia54631

10、05546310528.728.72.1.3 变量的显示变量的显示n 表表2.4 数据集数据集format.dtaPage 9STATA从入门到精通从入门到精通2.1.4 变量的标签变量的标签1 添加数据集的标签使用:添加数据集的标签使用:label data label2 添加变量的标签使用:添加变量的标签使用:label variable varname label label为变量数值添加标签的语法包括两部分,为变量数值添加标签的语法包括两部分,首先是定义数值标签(首先是定义数值标签(value label):):label define lblname # label # label

11、.然后将定义好的数值标签(然后将定义好的数值标签(value label)添加到变量上:)添加到变量上:label values varlist lblname|. Page 10STATA从入门到精通从入门到精通2.2 创建一个新的数据集创建一个新的数据集2.2.1关于数据集操作的基本命令关于数据集操作的基本命令 1. browse和和edit命令命令edit varlist if in browse varlist if in 2rename命令命令rename old_varname new_varname3. save命令命令save filename , save_optionsno

12、label 不保存设定的标签。不保存设定的标签。replace 允许新的文件覆盖原有文件,这是一个常用的选项。允许新的文件覆盖原有文件,这是一个常用的选项。all 主要用于编程,指定将主要用于编程,指定将e(sample)与数据一起保存。与数据一起保存。Page 11STATA从入门到精通从入门到精通2.2.1关于数据集操作的基本命令关于数据集操作的基本命令4. describe命令命令describe varlist , memory_options5. list命令命令list varlist if in , optionsseparator(#) 每隔每隔#行画一条分割线,默认情况是行画

13、一条分割线,默认情况是separator(5), 即每隔即每隔5行画一条分割线。行画一条分割线。sepby(varlist) 每当每当varlist数值发生变化时就画一条分割线。数值发生变化时就画一条分割线。nolabel 显示变量的赋值而不是标签。显示变量的赋值而不是标签。6codebook命令命令codebook varlist if in , optionsPage 12STATA从入门到精通从入门到精通举例应用:创建新的数据集举例应用:创建新的数据集auto.dta【例【例2.2】本例利用】本例利用2.1.1中所介绍的命令创建表中所介绍的命令创建表2-9所示的名为所示的名为auto.d

14、ta的数据集。的数据集。这个数据集共有这个数据集共有74个观测值,表个观测值,表2-9列举了部分数据。读者可以使用列举了部分数据。读者可以使用sysuse auto来查看这个数据,之所以使用来查看这个数据,之所以使用sysuse是因为是因为auto.dta是是Stata自带的数自带的数据集。据集。 表表2-9 数据集数据集auto.dta(部分数据)(部分数据)makemakepricepricempgmpgrep78rep78headheadtrunktrunkweightweightlengthlengthturnturnAMC ConcordAMC Concord409940992222

15、3 32.52.51111293029301861864040Linc. Linc. VersaillesVersailles134661346614143 33.53.51515383038302012014141Merc. BobcatMerc. Bobcat3829382922224 43 39 9258025801691693939Page 13STATA从入门到精通从入门到精通2.3导入已创建的数据集导入已创建的数据集读取格式为读取格式为.dta的数据的数据use filename , clear nolabel选项选项描述描述clear指明即使目前在内存中的数据尚未保存仍然可以用新

16、的数据来指明即使目前在内存中的数据尚未保存仍然可以用新的数据来 代替它。代替它。nolabel在载入数据时不载入相关的标签,这一选项基本上很少使用。在载入数据时不载入相关的标签,这一选项基本上很少使用。【例【例2.3】比如我们的数据是存放在】比如我们的数据是存放在D:datawooldstatafiles的的auto.dta文件,我们现在希望将这个文件载入到文件,我们现在希望将这个文件载入到Stata中去。中去。Page 14STATA从入门到精通从入门到精通2.4 Stata中的表达式中的表达式n算术符号算术符号Stata中的算术符号有中的算术符号有“+”(加)、(加)、“”(减)、(减)、

17、“*”(乘)、(乘)、“/”(除)、(除)、“”(乘方)以及(乘方)以及“”(负号)。(负号)。n关系符号关系符号共有六种关系符号,共有六种关系符号,“=”(等于)、(等于)、“!=”(不等于)、(不等于)、“”(大(大于)、于)、“=”(大于等于)、(大于等于)、“#)生成虚拟变量)生成虚拟变量 generate newvar=(varname#)是是Stata中生成虚拟变量的快捷方中生成虚拟变量的快捷方式,在这个命令中,第一个等号表示定义:满足其后小括号中的观测式,在这个命令中,第一个等号表示定义:满足其后小括号中的观测案例将会在新的变量中定义为案例将会在新的变量中定义为1,其余的情况则定

18、义为,其余的情况则定义为0。Page 28STATA从入门到精通从入门到精通2.9.3生成分类变量生成分类变量n generate加加replace命令组合生成分类变量命令组合生成分类变量【例【例2.9】仍然使用数据集】仍然使用数据集wage.dta,这是一个关于就业的微观数据集,共有,这是一个关于就业的微观数据集,共有526个观测值,个观测值,24个变量,主要变量的情况是:个变量,主要变量的情况是:wage表示工资,表示工资, educ表示表示教育程度,教育程度, exper表示工作经验即工作的年数,表示工作经验即工作的年数,tenure表示在当前岗位上工表示在当前岗位上工作的年数,以上变量

19、都是以年来计量的。本例重点研究作的年数,以上变量都是以年来计量的。本例重点研究educ这个变量,我们这个变量,我们试图使用试图使用generate和和replace生成一个分类变量生成一个分类变量educ6将教育水平划分为将教育水平划分为6个个等级,依次是未读书、小学、初中、高中、大学、研究生,并分别赋值等级,依次是未读书、小学、初中、高中、大学、研究生,并分别赋值0到到5。n recode命令:命令: recode varlist (rule) (rule) . , generate(newvar)常见的赋值规则如下:常见的赋值规则如下:规则规则例子例子含义含义#=#3=13 转换为转换为

20、1# # = #2 .=92和缺失值转换为和缺失值转换为9#/# = #1/5 = 41到到5转换为转换为4nonmissing= #nonmiss =8所有非缺失值转换为所有非缺失值转换为8missing = # miss =9 所有缺失值转换为所有缺失值转换为9Page 29STATA从入门到精通从入门到精通2.9.3生成分类变量生成分类变量n 【例【例2.10】为了说明】为了说明recode的使用,我们使用表的使用,我们使用表2-21所示的数据,所示的数据,完成如下任务:完成如下任务:(1)改变变量)改变变量x的赋值,将的赋值,将1变为变为2,保持其他赋值不变,并将新的变量,保持其他赋值

21、不变,并将新的变量保存为保存为nx。(2)改变)改变x1的赋值,将的赋值,将1改为改为2,将,将2改为改为1, 并将新的变量保存为并将新的变量保存为nx1。(3)改变)改变x2的赋值,由的赋值,由1和和2变为变为1,将,将3改为改为2,将,将4到到7改为改为3并将新的并将新的结果保存在结果保存在nx2。 Page 30STATA从入门到精通从入门到精通n 表表2-21 recode演示数据集演示数据集x xx1x1x2x2x3x31 12 21 18 82 21 12 21 13 32 21 12 24 43 32 21 15 54 43 32 26 65 54 43 37 76 65 54

22、48 87 76 65 51 18 87 76 62 21 18 87 72.9.3生成分类变量生成分类变量Page 31STATA从入门到精通从入门到精通使用使用autocode()、recode()和和group()三个函数生成分三个函数生成分类变量类变量n autocode()、recode()和和group()是常用的用于生成分类变量的函数,是常用的用于生成分类变量的函数,它们的含义如下所示:它们的含义如下所示:n autocode(x,n,xmin,xmax)表示根据表示根据x值形成分类变量:将值形成分类变量:将x的值的值域(即最小值域(即最小值xmin至最大值至最大值xmax)分成

23、等距的)分成等距的n份,并求出各份,并求出各x值所值所在区间的上限。在区间的上限。n group(x) 建立一个分类变量,将按排序后的数据分为尽量等规建立一个分类变量,将按排序后的数据分为尽量等规模的模的x个子样本。个子样本。n recode(x,x1 ,x2 ,xn ) 当当x缺失时求得缺失值,当缺失时求得缺失值,当xx1时求得时求得x1,当,当x x2时求得时求得x2。Page 32STATA从入门到精通从入门到精通【例【例2.11】仍然使用就业调查数据集】仍然使用就业调查数据集wage.dta,这个数据集主要变量的,这个数据集主要变量的情况是:情况是:wage表示工资,表示工资, edu

24、c表示教育程度,表示教育程度, exper表示工作经验即表示工作经验即工作的年数,工作的年数,tenure表示在当前岗位上工作的年数,以上变量都是以年表示在当前岗位上工作的年数,以上变量都是以年来计量的。来计量的。其中,变量其中,变量exper的取值区间从的取值区间从1到到51,本例要求分别使用,本例要求分别使用autocode()、recode()和和group()三个函数变量将三个函数变量将exper转换为一个分为转换为一个分为5组的分类变组的分类变量。具体的三个要求如下。量。具体的三个要求如下。(1)利用)利用autocode()函数将函数将exper分成九组,各组相等间隔为分成九组,各

25、组相等间隔为10年年(2)依据观测案例的数目平均分成)依据观测案例的数目平均分成5组,各个组别在目标变量的排列顺组,各个组别在目标变量的排列顺序下包含有相同数目的观测案例序下包含有相同数目的观测案例(3)要求将)要求将exper分成如下区间所定义的分成如下区间所定义的5组:组:1,5,6,15,16,25,26,40,41,51。Page 33STATA从入门到精通从入门到精通2.10数据的整理数据的整理2.10.1数据的横向合并数据的横向合并merge varlist using filename filename ,optionsn merge(newvar):自动生成合并吻合度的记录变量

26、,默认为):自动生成合并吻合度的记录变量,默认为merge,数值为:,数值为:n 0不吻合,只在内存内数据存在的个案不吻合,只在内存内数据存在的个案n 1不吻合,只在内存外数据存在的个案不吻合,只在内存外数据存在的个案n 2吻合,内存内和内存外数据皆存在的个案。吻合,内存内和内存外数据皆存在的个案。n update:内存内的缺失数值可以被内存外数据的相应数值覆盖。:内存内的缺失数值可以被内存外数据的相应数值覆盖。n replace:内存内的非缺失数值可以被内存外数据的相应数值覆盖。:内存内的非缺失数值可以被内存外数据的相应数值覆盖。n nokeep:去掉内存外数据的非吻合个案,等同于:去掉内存

27、外数据的非吻合个案,等同于drop if merge=2。n nosummary合并两个以上数据时,不保留记录变量(即合并两个以上数据时,不保留记录变量(即merge)Page 34STATA从入门到精通从入门到精通2.10数据的整理数据的整理n 【例【例2.12】现有两个关于汽车市场的调查数据文件,一个是汽车技术】现有两个关于汽车市场的调查数据文件,一个是汽车技术层面的数据层面的数据autotech.dta,见表,见表2-24,其中的变量情况是:,其中的变量情况是:make是是字符型变量,表明生产厂商,字符型变量,表明生产厂商,mpg是行驶里程(英里),是行驶里程(英里),weight是是车

28、身重量(吨),车身重量(吨),length是车身长度(米);另一个数据是汽车成本是车身长度(米);另一个数据是汽车成本层面的数据层面的数据autocost.dta,见表,见表2-25,其中的变量情况是:,其中的变量情况是:make是是字符型变量,表明生产厂商,字符型变量,表明生产厂商,price是汽车的价格(万元),是汽车的价格(万元),rep78是是年度修理次数。现在要求将年度修理次数。现在要求将make作为索引变量将两个数据横向合并作为索引变量将两个数据横向合并在一起。在一起。n 【2.13】有如表】有如表2-26和表和表2-27所示的两个数据集,其中所示的两个数据集,其中original

29、.dta是主数据,是主数据,updates.dta是调用数据集,请利用是调用数据集,请利用merge将两数据合并将两数据合并在一起,要求如果出现主数据和调用数据不一致的地方则依据调用数在一起,要求如果出现主数据和调用数据不一致的地方则依据调用数据进行修改。据进行修改。Page 35STATA从入门到精通从入门到精通2.10.2数据的纵向合并数据的纵向合并n append using filename ,optionsn keep(varlist):varlist是内存外数据指定保留的变量;当内存外变量是内存外数据指定保留的变量;当内存外变量数目多余内存内数据的时候,可以只保留内存内的变量。数目

30、多余内存内数据的时候,可以只保留内存内的变量。n nolabel:不拷贝内存外数据的数值标签,即合并后的数据使用内存:不拷贝内存外数据的数值标签,即合并后的数据使用内存内数据的数据标签。内数据的数据标签。n nonotes:不拷贝内存外数据的数据说明:不拷贝内存外数据的数据说明n 【例【例2.14】有两个数据文件】有两个数据文件odd.dta和和even.dta,利用,利用append命令将命令将两者合并。数据的内容将在执行命令的过程中以两者合并。数据的内容将在执行命令的过程中以list命令输出结果的命令输出结果的形式给出。形式给出。n 【例【例2.15】数据集】数据集auto.dta是是St

31、ata系统自带的关于系统自带的关于1978年汽车市场年汽车市场的一个调查数据,该数据集共有的一个调查数据,该数据集共有74个观测值,个观测值,12个变量。变个变量。变本例演示本例演示如何利用如何利用append命令完成如下任务:将命令完成如下任务:将auto.dta拆分成两个数据集,一个为拆分成两个数据集,一个为国产汽车(即国产汽车(即foreign=0),另一个为国外产汽车(即),另一个为国外产汽车(即foreign=1),然后将),然后将两者合并,并仅保存两者合并,并仅保存make、price、mpg、rep78、foreign这五个变量。这五个变量。Page 36STATA从入门到精通从

32、入门到精通2.10.3数据的交叉合并数据的交叉合并1. 用用joinby进行组内交叉进行组内交叉joinby varlist using filename ,options选项(选项(options)说明)说明n 当样本吻合时当样本吻合时update 内存内的缺失数值可以被内存外数据相同变量的相应数值覆盖。内存内的缺失数值可以被内存外数据相同变量的相应数值覆盖。replace内存内的所有数值被内存外数据相同变量的相应数值覆盖。内存内的所有数值被内存外数据相同变量的相应数值覆盖。n 当样本吻合时当样本吻合时unmatched(none)不保留非吻合样本,默认选项不保留非吻合样本,默认选项unma

33、tched(both)两个数据的非吻合样本都保留两个数据的非吻合样本都保留unmatched(master)只保留内存内数据非吻合样本只保留内存内数据非吻合样本unmatched(using)只保留内存外数据非吻合样本只保留内存外数据非吻合样本merge(newvar)自动生成合并吻合度的记录变量,默认为自动生成合并吻合度的记录变量,默认为mergenolabel不拷贝内存外数据的数值标签不拷贝内存外数据的数值标签Page 37STATA从入门到精通从入门到精通n 【例【例2.16】在以家庭为单位的研究中,我们同时有父母的数据和小孩的数据,】在以家庭为单位的研究中,我们同时有父母的数据和小孩的数据,如果一个家庭有如果一个家庭有2个父母和个父母和2个小孩,那么父母与孩子的交叉后有个小孩,那么父母与孩子的交叉后有22个样本。个样本。我们以家庭编号为索引变量将父母的数据和孩子的数据进行合并就可以得到我们以家庭编号为索引变量将父母的数据和孩子的数据进行合并就可以得到各种可能的亲子关系。表各种可能的亲子关系。表2-31是父母的数据(是父母的数据(parent.dta),表),表2-32是小孩是小孩的数据(的数据(child.dta),请利用),请利用joinby进行组内交叉得到亲子关系数据。进行组内交叉得到亲子关系数据。n 表表2-31父母的数据(父母的数据(par

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论