




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档5函数与运算符5.1运算符expSTATA共有四种运算,分别是代数运算、字符运算、关系运算和逻辑运算。运算符一览表代数运算逻辑运算比较关系+加!不大于-减不=不小于/除&和,=,=,&,|当不确定优先序的时候,最好用括号将优先序直接表达出来。5.1.1代数运算包括加(+)、减(-)、乘(*)、除(/),幂()和负数(-),当遇到缺失值或者运算不可行时(比如除数为零)均会得到缺失值。例:求正式的值,若x=4,y=2,显然经过心算,应该为:-1. di (4+2(4-2)/(2*4) /di是display命令的略写,表示显示结果. di 4-2 /输出2. di 3*5 /输出15. di 8/2 /8除以2,输出4. di 23 /2的立方,输出8. di (2+3(2-3)/sqrt(2*3) /括号运算优先,想一想,结果应为多少?实际上,更多的情形是两个或多个变量的直接运算。比如,将进口车的价格都增加100元(可能是关税),而国产车不变。. sysuse auto, clear. gen nprice=price+foreign*100. list nprice price foreign5.1.2字符运算加(+)号同样可用于字符运算,当加号出现在两个字符之间时,两个字符将被连成一个字符。比如把”我爱” “STATA”合并在一起,命令为:. scalar a=”我爱” +“STATA” /要特别注意,引号必须是半角和英文模式. scalar list a /scalar命令将两个字符运算后的结果赋于a,然后显示a. scalar a=2 +“3” /注意到:字符与数值不能直接相加,显示类型不匹配type mismatchr(109);5.1.3关系运算关系运算包括大于、小于、等于;不等于、不小于、不大于等多种比较关系。特别要注意到STATA中的等于符号为“=”,是两个等号连写在一起,不同于赋值时用的单个等号“=”。. di 35 /输出的结果为0,意味着3大于5为假。当数据中含有缺失值的时候需要特别小心,因为系统缺失值大于任何一个数据,利用这一点,我们可以使用条件语句排除缺失值。任务:将年龄分组为65岁以下和65岁及以上两组,缺失值显然不能包括在任何一组中。age38.65421880. 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 age10000 | price10000 | (price10000 | price4000) & forei=05.2函数概览function函数只不过是一些编号的小程序,它会按一定的规则进行处理,之后报告结果。实际上,谁也记不住这么多函数,因此,首先要学会查找函数的帮助,当记不住的时候,随时去查寻帮助。记住下面的命令才是最关键的。. help functionType 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包括八类函数,分别是数学函数,分布函数,随机数函数,字符函数,程序函数,日期函数,时间序列函数和矩阵函数。本章主要介绍数学函数和字符函数,其他函数将在后面相应的章节介绍。常用函数一览表函数含义举例数值型函数abs(x)绝对值abs(-9)=9comb(n,k)从n中取k个的组合comb(10,2)=45exp(x)指数exp(0)=1fill()自动填充数据int(x)取整int(5.6) = 5, int(-5.2) = -5.ln(x)对数ln(1)=0log10(x)以10为底的对数log10(1000)=3mod(x,y)= x - y*int(x/y)mod(9,2)=1round(x)四舍五入round(5.6)=6sqrt(x)开方sqrt(16)=4sum(x)求和随机函数uniform()均匀分布随机数第10讲将介绍invnormal(uniform()标准正态分布随机数第11讲将介绍字符函数real(s)字符型转化为数值型string(n)数值型转化为字符型substr(s,n1,n2)从S的第n1个字符开始,截取n2个字符Substr(“this”,2,2)=isword(s,n)返回s的第n个字符Work(“this”,3)=i系统变量_n当前观察值的序号_N共有多少观察值_pi5.3数学函数math functions5.3.1三角函数,指数和对数函数数学函数可以直接对数据进行运算,也可以对变量进行运算。. di sqrt(4) /开方,输出2. di sqrt(6+3) /先相加,再开方,输出3. di abs(-100) /求绝对值,输出100. di exp(1) /表示e1,输出2.7182818. di ln(exp(2) /先求e2,再取对数,得到2. di _pi /_pi为圆周率,得到3.1415927. di cos(_pi) /_pi的余弦值,得到-1数学函数可以直接对数据进行运算,也可以对变量进行运算。对变量的操作: clear set obs 5 gen x=_n /生成新变量 x,取值为1,2,3,4,5 gen y1=exp(x) /取指数 gen y2=ln(x) /取对数gen y3=sin(exp(x) ) +cos(ln(x) /取对数l5.3.2取整和四舍五入取整. di int(3.49) /int()取整,不论后面的小数是什么,只取小数点前的数值. di int(3.51) /输出3. di int(-3.49) /输出-3. di int(-3.51) /输出-3四舍五入. di round(3.49) /round()取整,四舍五入,结果为3. di round(3.51) /四舍五入,结果为4. di round(-3.49) /四舍五入,结果为-3. di round(-3.51) /四舍五入到个位数,结果为-4. di round(3.345,.1) /四舍五入到十分位,结果为3.3. di round(3.351,.1) /四舍五入到十分位,结果为3.4. di round(3.345,.01) /四舍五入到百分位,结果为3.35. di round(3.351,.01) /四舍五入到百分位,结果为3.35. di round(335.1,10) /四舍五入到十位,结果为330对变量的操作. sysuse auto, clear. gen nprice=price/10000 /将价格变到以万为单位. gen nprice2=round(nprice,0.01) /四舍五入到百分位. list nprice* /比较结果5.3.3求和及求均值gen和egenclear set obs 5gen x=_n /生成新变量x, x的取值从1到5 gen y=sum(x) /求列累积和 egen z=sum(x) /求列总和egen r=rsum(x y z) /求x+y+z总和 egen hsum = rowtotal(x y z) /求hsum=a+b+c egen havg = rowmean(x y z) /求havg=(a+b+c)/3 egen hsd = rowsd(x y z) /求a、b和c的方差 egen rmin = rowmin(x y z) /求x y z)三个变量的最小值 egen rmax = rowmax(x y z) /求x y z)三个变量的最大值 list /注意比较y和z的不同。egen avgx=mean(x) /求列均值egen medx=median(x) /求列中值egen stdx = std(x) /求列标准差replace y=3 in 3egen byte dxy = diff(x y) /当x与y相等时,differ取0,若不相等为1更多关于egen命令的用法将参考帮助:help egen 5.3.4其他 sysuse auto, clear egen rmpg = rank(mpg) /求mpg的次序 sort rmpg list mpg rank /列示结果egen highrep78 = anyvalue(rep78), v(3/5) /*若rep78不为3、4或5, 则为缺失值*/ list rep78 highrep78clearinput ab10001101001.0endegen ab=group(a b)egen ab2=group(a b),missingla b ab ab2 -1.1 0 3 3 2.0 0 1 1 3.1 1 4 4 4.0 1 2 2 5.0 0 1 1 -6.1 . . 5 7. 0 . 65.4字符函数string functions任务:将美国汽车数据中汽车商标变量值简化为取前三个字母,得到一个新的变量make3sysuse auto, cleargen str3 make3=substr(make,1,3)list make*任务:下表的数据是一个多选题,请把这道多选题转化为四个单选题a222、1、31、2、44、2、11、221、2gen na1=strpos(a, 1)!=0 /strops(s1,s2)返回字符s2在s1中的位置gen na2=strpos(a, 2)!=0gen na3=strpos(a, 3)!=0gen na4=strpos(a, 4)!=0lista na1 na2 na3 na4 1.2 0 1 0 0 2.2 0 1 0 0 3.1、2、3 1 1 1 0 4.1、2、4 1 1 0 1 5.1、2、4 1 1 0 1 6.1、2 1 1 0 0 7.2 0 1 0 0 8.1、2 1 1 0 0 webuse genxmpl2, clear gen name2 = word(name,2) /新变量name2,取值为name的第二个字母 list n*5.5 分类操作byclearedit *将下表复制粘贴到STATA数据编辑器中,注意粘贴时把光标停在第一格。xy11.111.211.322.122.2gen n=_n /生成一个新变量n=1,2,3,4,5gen N=_N /生成一个新变量N=5,5,5,5,5gen z=y1 /生成一个新变量z=y的第一个观察值l x y n N z -1.1 1.1 1 5 1.1 2.1 1.2 2 5 1.1 3.1 1.3 3 5 1.1 4.2 2.1 4 5 1.1 5.2 2.2 5 5 1.1by x, sort: gen n1=_n /注意到n1与n的不同,n1按x分类进行操作by x, sort: gen N1=_Nby x, sort: gen z1=y1list x y n N z n1 N1 z1 1.1 1.1 1 5 1.1 1 3 1.1 2.1 1.2 2 5 1.1 2 3 1.1 3.1 1.3 3 5 1.1 3 3 1.1 4.2 2.1 4 5 1.1 1 2 2.1 5.2 2.2 5 5 1.1 2 2 2.1任务:下列数据为家庭成员数据family.dta,其中hhid为家庭编码,age为家庭成员的年龄。将下表数据复制到STATA,然后另存为family.dtahhidage18614213615712824225240要求:(1)生成一个新变量hhsize,该变量表示共有多少个家庭成员。(2)给每个家庭成员一个编码id。如第一个家庭的第一个成员编码为11;(3)按家庭生成一个全家成员平均年龄值mage。(4)对每个家庭,分别按年龄大小排序,然后生成一个家庭成员代码,即家庭内年龄最小的成员代码为1,年龄最大的家庭成员,代码为nid。最后需要生成的数据集如下:hhidagehhsizeidmagenid12851549.8113651349.8214251249.8315751449.8418651149.8525322291240323292242321293请自己先思考,再参考如下操作 :将上表数据复制粘贴到STATA数据编辑器,然后执行下面的命令use family, clearby hhid,sort :gen hhsize=_N /得到家庭规模hhsizeby hhid,sort :gen id=_n+hhid*10 /为家庭成员编码by hhid,sort: egen mage=mean(age) /求平均年龄sort hhid age /按户排序,在每个户内按年龄大小排序by hhid: gen nid=_n /在户内按年龄大小为家庭成员编码 +-+ | hhid age hhsize id mage nid | |-| 1. | 1 28 5 11 49.8 1 | 2. | 1 36
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-广东-广东工程测量工三级(高级工)历年参考题库典型考点含答案解析
- 2020-2025年二级造价工程师之土建建设工程计量与计价实务高分通关题型题库附解析答案
- 2020-2025年高级经济师之工商管理高分通关题库A4可打印版
- 2025年中级卫生职称-主治医师-精神病学(中级)代码:340历年参考题库典型考点含答案解析
- 2025年驾驶证考试-货车理论考试-货车驾驶证(科目一)历年参考题库含答案解析
- 2025年通信专业技术-通信专业技术(中级)-中级通信专业技术(交换技术实务)历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-铁路职业技能鉴定-铁路职业技能鉴定(铁路接触网工)技师历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-热工职业-热工自动装置检修职业技能鉴定(中级)历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-供水供应工-供水供应工证(中级)历年参考题库含答案解析(5套)
- 2025年综合评标专家-海南-海南综合评标专家(工程勘察、工程设计类)历年参考题库含答案解析(5套)
- 全业务竞争挑战浙江公司社会渠道管理经验汇报
- 护理副高职称答辩5分钟简述范文
- 幼小衔接资料合集汇总
- GB/T 42195-2022老年人能力评估规范
- GB/T 4909.4-2009裸电线试验方法第4部分:扭转试验
- GB/T 15155-1994滤波器用压电陶瓷材料通用技术条件
- 复变函数与积分变换全套课件
- 做一名优秀教师课件
- 企业标准编写模板
- 商场开荒保洁计划书
- DBJ 53-T-46-2012 云南省城镇道路及夜景照明工程施工验收规程
评论
0/150
提交评论