STATA入门5-函数与运算符

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5函数与运算符

5.1运算符exp

STATA 共有四种运算,分别是代数运算、字符运算、关系运算和逻辑运算。

运算的优先序:!(或~),^,-(负号),/,*,-(减),+,!=(或~=),>,<,<=,>=,==,&,| 当不确定优先序的时候,最好用括号将优先序直接表达出来。

5.1.1代数运算

包括加(+)、减(-)、乘(*)、除(/),幂(^)和负数(-),当遇到缺失值或者运算不可行时(比如除数为零)均会得到缺失值。

例:求正式的值,若x=4,y=2,显然经过心算,应该为:-1

xy

y x y x -+-

. di –(4+2^(4-2))/(2*4) //di 是display 命令的略写,表示显示结果

. di 4-2 //输出2 . di 3*5 //输出15

. di 8/2 //8除以2,输出4 . di 2^3 //2的立方,输出8 . di –(2+3^(2-3))/sqrt(2*3) //括号运算优先,想一想,结果应为多少?

实际上,更多的情形是两个或多个变量的直接运算。比如,将进口车的价格都增加100元(可能是关税),而国产车不变。

. sysuse auto, clear

. gen nprice=price+foreign*100 . list nprice price foreign

5.1.2字符运算

加(+)号同样可用于字符运算,当加号出现在两个字符之间时,两个字符将被连成一个字符。比如把”我爱”“STATA”合并在一起,命令为:. scalar a=”我爱” +“STATA” //要特别注意,引号必须是半角和英文模式

. scalar list a //scalar命令将两个字符运算后的结果赋于a,然后显示a

. scalar a=2 +“3” //注意到:字符与数值不能直接相加,显示类型不匹配

type mismatch

r(109);

5.1.3关系运算

关系运算包括大于、小于、等于;不等于、不小于、不大于等多种比较关系。特别要注意到STATA中的等于符号为“==”,是两个等号连写在一起,不同于赋值时用的单个等号“=”。

. di 3<5 //输出结果为1,意味着3小于5为真

. di 3>5 //输出的结果为0,意味着3大于5为假。

当数据中含有缺失值的时候需要特别小心,因为系统缺失值大于任何一个数据,利用这一点,我们可以使用条件语句排除缺失值。

任务:将年龄分组为65岁以下和65岁及以上两组,缺失值显然不能包括在任何一组中。

. clear

. edit

将上述数据复制到STATA中,然后退出数据编辑器。

. gen agegrp1=(age>=65)

生成的数据中,将缺失值视为65岁以上分在了高龄组,这是错误的

. gen agegrp2=(age>=65) if age<.

生成的数据中,将缺失值排除在外,正确!这一命令常被用于生成虚拟变量。

. gen agegrp3=(age==65) if age<. //仅判断是否恰好为65岁

. list //比较agegrp1、 agegrp2和agegrp3的差异,体会if age<.的作用。

5.1.4逻辑运算

逻辑运算包括非(!),和(&)、或(|)三种,主要用于条件语句中。

例:列示出价格大于10000元的任何车,或者小于4000元的国产车。

. sysuse auto, clear

. list price foreign if price>10000 | price<4000 & forei==0

在STATA中,和(&)优先于或(|),因此上述命令与下面的命令等价:. list price foreign if price>10000 | (price<4000 & forei==0)

试一试下面的命令,这里列示的是国产车中价格高于10000元或者低于4000元的车。

. list price foreign if (price>10000 | price<4000) & forei==0

5.2函数概览function

函数只不过是一些编号的小程序,它会按一定的规则进行处理,之后报告结果。实际上,谁也记不住这么多函数,因此,首先要学会查找函数的帮助,当记不住的时候,随时去查寻帮助。记住下面的命令才是最关键的。

. help function

Type of function See help --------------------------------------+------------------------- Mathematical functions math functions Probability distributions and density functions density functions

Random-number functions random-number functions String functions string functions Programming functions programming functions Date functions date functions Time-series functions time-series functions Matrix functions matrix functions

弹出来的对话框告诉我们,STATA包括八类函数,分别是数学函数,分布函数,随机数函数,字符函数,程序函数,日期函数,时间序列函数和矩阵函数。本章主要介绍数学函数和字符函数,其他函数将在后面相应的章节介绍。

相关文档
最新文档