首页 STATA入门5-函数与运算符(1)

STATA入门5-函数与运算符(1)

举报
开通vip

STATA入门5-函数与运算符(1)5函数与运算符5.1运算符expSTATA共有四种运算,分别是代数运算、字符运算、关系运算和逻辑运算。运算符一览表代数运算逻辑运算比较关系加!不>大于-减~不=不小于/除&和,=,==,&,|当不确定优先序的时候,最好用括号将优先序直接表达出来。5.1.1代数运算包括加()、减(-)、乘(*)、除(/),幂(^)和负数(-),当遇到缺失值或者运算不可行时(比如除数为零)均会得到缺失值。例:求正式的值,若x=4,y=2,显然经过心算,应该为:-1.di–(42^(4-...

STATA入门5-函数与运算符(1)
5 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 与运算符5.1运算符expSTATA共有四种运算,分别是代数运算、字符运算、关系运算和逻辑运算。运算符一览 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 代数运算逻辑运算比较关系加!不>大于-减~不<小于*乘|或>=不小于/除&和<=不大于^指数==等于sqrt()开方!=不等于~=不等于~=不等于字符相加运算的优先序:!(或~),^,-(负号),/,*,-(减),,!=(或~=),>,<,<=,>=,==,&,|当不确定优先序的时候,最好用括号将优先序直接表达出来。5.1.1代数运算包括加()、减(-)、乘(*)、除(/),幂(^)和负数(-),当遇到缺失值或者运算不可行时(比如除数为零)均会得到缺失值。例:求正式的值,若x=4,y=2,显然经过心算,应该为:-1.di–(42^(4-2))/(2*4) //di是display命令的略写,表示显示结果.di4-2  //输出2.di3*5   //输出15.di8/2    //8除以2,输出4.di2^3  //2的立方,输出8.di–(23^(2-3))/sqrt(2*3)//括号运算优先,想一想,结果应为多少?实际上,更多的情形是两个或多个变量的直接运算。比如,将进口车的价格都增加100元(可能是关税),而国产车不变。.sysuseauto,clear.gennprice=priceforeign*100.listnpricepriceforeign5.1.2字符运算加()号同样可用于字符运算,当加号出现在两个字符之间时,两个字符将被连成一个字符。比如把”我爱”“STATA”合并在一起,命令为:.scalara=”我爱”“STATA” //要特别注意,引号必须是半角和英文模式.scalarlista //scalar命令将两个字符运算后的结果赋于a,然后显示a.scalara=2“3” //注意到:字符与数值不能直接相加,显示类型不匹配typemismatchr(109);5.1.3关系运算关系运算包括大于、小于、等于;不等于、不小于、不大于等多种比较关系。特别要注意到STATA中的等于符号为“==”,是两个等号连写在一起,不同于赋值时用的单个等号“=”。.di3<5  //输出结果为1,意味着3小于5为真.di3>5  //输出的结果为0,意味着3大于5为假。当数据中含有缺失值的时候需要特别小心,因为系统缺失值大于任何一个数据,利用这一点,我们可以使用条件语句排除缺失值。任务:将年龄分组为65岁以下和65岁及以上两组,缺失值显然不能包括在任何一组中。age38.65421880.clear.edit将上述数据复制到STATA中,然后退出数据编辑器。.genagegrp1=(age>=65)生成的数据中,将缺失值视为65岁以上分在了高龄组,这是错误的.genagegrp2=(age>=65)ifage<.生成的数据中,将缺失值排除在外,正确!这一命令常被用于生成虚拟变量。.genagegrp3=(age==65)ifage<. //仅判断是否恰好为65岁.list //比较agegrp1、agegrp2和agegrp3的差异,体会ifage<.的作用。ageAgegrp1Agegrp2Agegrp338000.1..651114200018000801105.1.4逻辑运算逻辑运算包括非(!),和(&)、或(|)三种,主要用于条件语句中。例:列示出价格大于10000元的任何车,或者小于4000元的国产车。.sysuseauto,clear.listpriceforeignifprice>10000|price<4000&forei==0在STATA中,和(&)优先于或(|),因此上述命令与下面的命令等价:.listpriceforeignifprice>10000|(price<4000&forei==0)试一试下面的命令,这里列示的是国产车中价格高于10000元或者低于4000元的车。.listpriceforeignif(price>10000|price<4000)&forei==05.2函数概览function函数只不过是一些编号的小程序,它会按一定的规则进行处理,之后报告结果。实际上,谁也记不住这么多函数,因此,首先要学会查找函数的帮助,当记不住的时候,随时去查寻帮助。记住下面的命令才是最关键的。.helpfunctionTypeoffunction           Seehelp        ---------------------------------------------------------------Mathematicalfunctions        mathfunctions     Probabilitydistributionsand                densityfunctions         densityfunctions   Random-numberfunctions       random-numberfunctionsStringfunctions           stringfunctions    Programmingfunctions        programmingfunctions Datefunctions            datefunctions     Time-seriesfunctions        time-seriesfunctions Matrixfunctions           matrixfunctions    弹出来的对话框告诉我们,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()) 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 正态分布随机数第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共有多少观察值_piπ5.3数学函数mathfunctions5.3.1三角函数,指数和对数函数数学函数可以直接对数据进行运算,也可以对变量进行运算。.disqrt(4)   //开方,输出2.disqrt(63)   //先相加,再开方,输出3.diabs(-100)   //求绝对值,输出100.diexp(1)   //表示e1,输出2.7182818.diln(exp(2))  //先求e2,再取对数,得到2.di_pi     //_pi为圆周率,得到3.1415927.dicos(_pi)   //_pi的余弦值,得到-1数学函数可以直接对数据进行运算,也可以对变量进行运算。对变量的操作:clearsetobs5   genx=_n   //生成新变量x,取值为1,2,3,4,5geny1=exp(x)  //取指数geny2=ln(x)  //取对数geny3=sin(exp(x))cos(ln(x)) //取对数l5.3.2取整和四舍五入取整.diint(3.49)  //int()取整,不论后面的小数是什么,只取小数点前的数值.diint(3.51)  //输出3.diint(-3.49)  //输出-3.diint(-3.51)  //输出-3四舍五入.diround(3.49) //round()取整,四舍五入,结果为3.diround(3.51)  //四舍五入,结果为4.diround(-3.49) //四舍五入,结果为-3.diround(-3.51)   //四舍五入到个位数,结果为-4.diround(3.345,.1) //四舍五入到十分位,结果为3.3.diround(3.351,.1)  //四舍五入到十分位,结果为3.4.diround(3.345,.01) //四舍五入到百分位,结果为3.35.diround(3.351,.01)  //四舍五入到百分位,结果为3.35.diround(335.1,10)  //四舍五入到十位,结果为330对变量的操作.sysuseauto,clear.gennprice=price/10000   //将价格变到以万为单位.gennprice2=round(nprice,0.01) //四舍五入到百分位.listnprice* //比较结果5.3.3求和及求均值gen和egenclearsetobs5genx=_n   //生成新变量x,x的取值从1到5geny=sum(x) //求列累积和egenz=sum(x) //求列总和egenr=rsum(xyz) //求xyz总和egenhsum=rowtotal(xyz) //求hsum=abcegenhavg=rowmean(xyz) //求havg=(abc)/3egenhsd=rowsd(xyz)  //求a、b和c的方差egenrmin=rowmin(xyz)  //求xyz)三个变量的最小值egenrmax=rowmax(xyz) //求xyz)三个变量的最大值list  //注意比较y和z的不同。egenavgx=mean(x)  //求列均值egenmedx=median(x)  //求列中值egenstdx=std(x)//求列标准差replacey=3in3egenbytedxy=diff(xy)//当x与y相等时,differ取0,若不相等为1更多关于egen命令的用法将参考帮助:helpegen5.3.4其他sysuseauto,clearegenrmpg=rank(mpg) //求mpg的次序sortrmpglistmpgrank //列示结果egenhighrep78=anyvalue(rep78),v(3/5) /*若rep78不为3、4或5,则为缺失值*/listrep78highrep78clearinputa  b1  00  01  10  10  01  ..  0endegenab=group(ab)egenab2=group(ab),missingla b ab ab2------------------1.  1 0  3  32.  0 0  1  13.  1 1  4  44.  0 1  2  25.  0 0  1  1------------------6.  1 .  .  57.  . 0  .  65.4字符函数stringfunctions任务:将美国汽车数据中汽车商标变量值简化为取前三个字母,得到一个新的变量make3sysuseauto,cleargenstr3make3=substr(make,1,3)listmake*任务:下表的数据是一个多选题,请把这道多选题转化为四个单选题a222、1、31、2、44、2、11、221、2genna1=strpos(a,"1")!=0 //strops(s1,s2)返回字符s2在s1中的位置genna2=strpos(a,"2")!=0genna3=strpos(a,"3")!=0genna4=strpos(a,"4")!=0lista       na1 na2 na3 na41.  2        0  1  0  02.  2      0  1  0  03.  1、2、3  1  1  1  04.  1、2、4  1  1  0  15.  1、2、4  1  1  0  16.  1、2    1  1  0  07.  2      0  1  0  08.  1、2    1  1  0  0webusegenxmpl2,cleargenname2=word(name,2) //新变量name2,取值为name的第二个字母listn*5.5分类操作byclearedit*将下表复制粘贴到STATA数据编辑器中,注意粘贴时把光标停在第一格。xy11.111.211.322.122.2genn=_n   //生成一个新变量n=1,2,3,4,5genN=_N   //生成一个新变量N=5,5,5,5,5genz=y[1]   //生成一个新变量z=y的第一个观察值lx  y n N  z-----------------------1.  1 1.1 1 5 1.12.  1 1.2 2 5 1.13.  1 1.3 3 5 1.14.  2 2.1 4 5 1.15.  2 2.2 5 5 1.1byx,sort:genn1=_n //注意到n1与n的不同,n1按x分类进行操作byx,sort:genN1=_Nbyx,sort:genz1=y[1]listx  y n N  z n1 N1  z11.  1 1.1 1 5 1.1  1  3 1.12.  1 1.2 2 5 1.1  2  3 1.13.  1 1.3 3 5 1.1  3  3 1.14.  2 2.1 4 5 1.1  1  2 2.15.  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数据编辑器,然后执行下面的命令usefamily,clearbyhhid,sort:genhhsize=_N //得到家庭规模hhsizebyhhid,sort:genid=_nhhid*10 //为家庭成员编码byhhid,sort:egenmage=mean(age) //求平均年龄sorthhidage    //按户排序,在每个户内按年龄大小排序byhhid:gennid=_n //在户内按年龄大小为家庭成员编码---------------------------------------|hhid age hhsize id mage nid||---------------------------------------|1.|  1  28    5 11 49.8  1|2.|  1  36    5 12 49.8  2|3.|  1  42    5 13 49.8  3|4.|  1  57    5 14 49.8  4|5.|  1  86    5 15 49.8  5||---------------------------------------|6.|  2  5    3 21  29  1|7.|  2  40    3 22  29  2|8.|  2  42    3 23  29  3|另一个例子:usefamily,clearbysorthhid(age):gennid1=_n //括号中的变量age只排序,不参于分组。bysorthhidage:gennid2=_n //hhid和age都既用来参与排序也分组
本文档为【STATA入门5-函数与运算符(1)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_751406
暂无简介~
格式:doc
大小:115KB
软件:Word
页数:22
分类:
上传时间:2022-08-01
浏览量:0