STATA第五讲教程.ppt_第1页
STATA第五讲教程.ppt_第2页
STATA第五讲教程.ppt_第3页
STATA第五讲教程.ppt_第4页
STATA第五讲教程.ppt_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

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

文档简介

1、STATA硕士研究生班,计量经济软件及应用,对外经济贸易大学金融学院 谢海滨 International Business School, UIBE,第五讲、命令语句结构与运算符,STATA的广泛应用: -1.运算符及运算 -2.命令语句结构 -1 命令(command) -2 变量(varlist) -3 分类变量(by varlist) -4 赋值(=exp) -5 条件(if exp) -6 范围(in range) -7 加权(weight) -8 可选(option),第五讲、命令语句结构与运算符,运算符与运算 对数据进行加工,不可避免的会涉及到数据的运算。STATA共有四种运算:代

2、数运算、字符运算、逻辑运算和关系运算。各种运算的运算符见右表。 运算的优先级(从高到低):!(或),-(负号),/,*,-(减),+,!=(或=),=,=,第五讲、命令语句结构与运算符,关系运算 关系运算包括大于、小于、等于;大于等于、小于等于、不等于等多种比较关系。特别要注意的是,STATA中的等于符号为“=”,是两个等号连写在一起,表示比较两边的关系式是否相等,它不同于“=”。“=”的含义是将等号右边的值赋予左边的变量,这是一个赋值号。当关系式满足是,显示结果为1(表示关系式正确),否则显示结果为0(表示关系式错误) dis 35 /dis是display的简写,显示结果为0 ,表示关系式

3、不对 dis 35 /显示结果为1,表示关系式正确 dis 4=4 /显示结果为1,表示关系式正确 在进行关系运算中一定要注意缺失值,因为在STATA中,系统缺失值大于任何一个数据。,例 下面举例说明忽略缺失值的严重后果。假定有如下的学生成绩数据,由于John缺考,因此成绩缺失。 现在假定学校想了解数学成绩在8090分和90分以上的人数,有人写出如下命令进行统计 gen Math_9=(Math=90)/成绩在90及以上的 gen Math_8=(Math=80)/成绩在8090之间 list Math Math_9 Math_8/显示结果 显然这种统计方式是错误的,因为他将缺考的John的数

4、学成绩当成超过90分来处理。,第五讲、命令语句结构与运算符,逻辑运算 逻辑运算符包括非(!或者),和(,第五讲、命令语句结构与运算符,命令(command) 命令的简化规则 在不引起歧义条件下,命令可以尽量只写前几个字母。如 summarize 只需要前两个字母 su;而describe只需要写第一个字母d。在帮助文件中,命令下面的小划线表明了命令的可以省略到什么程度。如 describe varlist if in , options summarize varlist if in weight , options 练习:请用list命令进行仿照练习。,第五讲、命令语句结构与运算符,变量(v

5、arlist) by varlist: command varlist =exp if exp in range weight , optionsvarlist: 变量列表,表示一个或者多个变量,多个变量之间用空格隔开。变量一般紧跟command命令之后,表示命令执行对象。如 cd d:/mystata /工作路径设定在d盘的mystata文件夹下 use auto.dta, clear / 打开数据文件并清空原有内存 su price /显示价格变量的基本统计特征 su p /由于auto文件中只有变量price首字母为p,因此与su price相同 su t /数据中有两个变量的开首字母为

6、t(trunk和turn),所以STATA认为t为模糊的省略,并给出如下的错误信息 t ambiguous abbreviation su trunk turn/显示trunk和turn的基本统计特征 su t* /与上一条命令相同,显示首字母为t的所有变量的基本统计特征,第五讲、命令语句结构与运算符,分类变量(by varlist) by varlist: command varlist =exp if exp in range weight , options 该语句的含义是根据变量列表,varlist来执行相应的命令。请比较下面的两个例子:例1:对所有汽车数据进行命令操作 cd d:/m

7、ystata /设定工作路径为d盘的mystata文件夹 use myauto.dta, clear /打开d盘文件夹mystata中的文件myauto.dta,并清空原有内存 sum price mpg length /对变量进行基本统计分析 例2:*对国产车和进口车进行分类命令操作 by foreign: sum price mpg length /对国产车和进口车分别进行基本的数据统计分析 注意:用by语句时,一定要确保内存中的数据是按照by后面的变量排序的,否则将会报错。请看下面的例子: sort price /将内存中的数据按照价格进行排序 by foreign: sum price

8、 mpg length not sorted,第五讲、命令语句结构与运算符,赋值操作(=exp) by varlist: command varlist =exp if exp in range weight , options 该语句主要用于生成新变量(gen)或覆盖原有变量(replace)。 例:假定销售商相对所有的车进行降价处理,降价的方式是在原有价格基础之上打9折在扣除100美元。我们可以用下面的命令实现: cd d:/mystata use myauto.dta, clear gen adj_price=price*0.9-100 /新的变量adj_price由原始价格*0.9减去

9、100来生成 list price adj_price /显示price和adj_price的内容 如果要覆盖已存在的变量,要用replace命令,不可以用gen命令。,第五讲、命令语句结构与运算符,条件语句(if exp) by varlist: command varlist =exp if exp in range weight , options 当我们只想对满足某些条件的数据进行某类操作时,则应当考虑使用条件语句。 例1:假定某客户只想查看进口车的价格 cd d:/mystata use myauto.dta, clear list price if foreign=1 例2:假定某

10、客户只想查看价格高过10000的进口汽车信息 list if (price10000)&(foreign=1) 例3:假定某客户想分类查看价格高过10000或低于6000的进口汽车和国产汽车信息 by foreign: list if (price10000)|(price6000),第五讲、命令语句结构与运算符,范围筛选(in range) by varlist: command varlist =exp if exp in range weight , options 如果用户只想对某一范围的数据进行处理,则可以考虑使用in语句。 例1:列出前10辆价格最低的汽车的基本信息 cd d:/m

11、ystata use myauto.dta, clear sort price list in 1/10 注:1/10中的反斜杠“/”的的含义是从1到10 例2:只显示前20辆最低价格汽车中国产车的基本信息 list in 1/20 if foreign=0,第五讲、命令语句结构与运算符,加权(weight) by varlist: command varlist =exp if exp in range weight , options 假定有如右的成绩表,其中score表示成绩,num表示得到该成绩的人数,求所有人的平均成绩。 显然简单地使用sum score命令将会得到错误的结论,因为各

12、个分数下的人数是不一样的,因此需要进行加权处理。具体方法如下: sum score weight=num /加权计算,比较与sum score结果的差异,第五讲、命令语句结构与运算符,可选项(options) by varlist: command varlist =exp if exp in range weight , options 许多命令都有一些可选项,而且不同的命令其可选项也不相同。如果想要了解不同命令的可选项,可以用help command,如help summarize。我们在此仅以几个简单的例子来说明可选项。 例1:比较下面两段命令语句显示结果的差异 cd d:/mystat

13、a cd d:/mystata use myauto.dta, clear use myauto.dta, clear sum price in 1/20 sum price in 1/20, d 我们发现加了可选项d后,统计分析结果要更为丰富。,课程小结及参考文献,第五讲、STATA入门,复习和练习,(1)打开汽车数据,进行如下操作:1. 对国内车进行统一加价处理(价格上调100美元),对国外车进行降价处理(价格超过10000的打8.5折,价格在500010000的打9折,其他的价格保持不变);3. 将调价后的汽车按价格分为三档:超过10000的为高档车(A),价格在600010000的为中

14、档车(B),低于6000的为低档车(C),做出这三类出的占比(饼状图形式呈现),答案: cd d:/mystata use myauto.dta, clear gen a_price=(price+100)*(foreign=0)+price*0.85*(foreign=1)*(price10000) / +price*0.9*(foreign=1)*(price5000)+price*(foreign=1)*(price10000)+2*(a_price=6000)+3*(a_price6000) label define levellb 1 A 2 B 3 C label values level levellb list gen i

温馨提示

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

评论

0/150

提交评论