ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:24.31KB ,
资源ID:4436093      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4436093.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(STATA入门5 函数与运算符Word文件下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

STATA入门5 函数与运算符Word文件下载.docx

1、,=,=,&,|当不确定优先序的时候,最好用括号将优先序直接表达出来。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) /括号运算优先,想一想,结果应为多少?实际上,更多的情形是两个或多

2、个变量的直接运算。比如,将进口车的价格都增加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”

3、 /注意到:字符与数值不能直接相加,显示类型不匹配type mismatchr(109);5.1.3关系运算关系运算包括大于、小于、等于;不等于、不小于、不大于等多种比较关系。特别要注意到STATA中的等于符号为“=”,是两个等号连写在一起,不同于赋值时用的单个等号“=”。. di 35 /输出的结果为0,意味着3大于5为假。当数据中含有缺失值的时候需要特别小心,因为系统缺失值大于任何一个数据,利用这一点,我们可以使用条件语句排除缺失值。任务:将年龄分组为65岁以下和65岁及以上两组,缺失值显然不能包括在任何一组中。age38.65421880. clear. edit将上述数据复制到STAT

4、A中,然后退出数据编辑器。. gen agegrp1=(age=65) 生成的数据中,将缺失值视为65岁以上分在了高龄组,这是错误的. gen agegrp2=(age=65) if age生成的数据中,将缺失值排除在外,正确!这一命令常被用于生成虚拟变量。. gen agegrp3=(age=65) if age. /仅判断是否恰好为65岁. list /比较agegrp1、 agegrp2和agegrp3的差异,体会if age10000 | price4000 & forei=0在STATA中,和(&)优先于或(|),因此上述命令与下面的命令等价:10000 | (price4000)

5、&5.2函数概览function函数只不过是一些编号的小程序,它会按一定的规则进行处理,之后报告结果。实际上,谁也记不住这么多函数,因此,首先要学会查找函数的帮助,当记不住的时候,随时去查寻帮助。记住下面的命令才是最关键的。. help functionType of function See help -+-Mathematical functions math functions Probability distributions and density functions density functions Random-number functions random-number fu

6、nctions String functions string functions Programming functions programming functions Date functions date functions Time-series functions time-series functions Matrix functions matrix functions 弹出来的对话框告诉我们,STATA包括八类函数,分别是数学函数,分布函数,随机数函数,字符函数,程序函数,日期函数,时间序列函数和矩阵函数。本章主要介绍数学函数和字符函数,其他函数将在后面相应的章节介绍。常用函数

7、一览表函数含义举例数值型函数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()标准

8、正态分布随机数第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) /求绝对值,

9、输出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()取整,不论后面的小数是什么,只取小数点前的

10、数值. 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.

11、35. di round(3.351,.01) /四舍五入到百分位,结果为3.35. di round(335.1,10) /四舍五入到十位,结果为330对变量的操作. 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)

12、/求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)

13、/求列标准差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 highrep78input a b1 00 01 10 11 . 0

14、endegen ab=group(a b)egen ab2=group(a b),missing a 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*下表的数据是一个多选题,请把这道多选题转化为四个单选题a22、1、31、2、44、2、

15、11、2gen na1=strpos(a, 1)!=0 /strops(s1,s2)返回字符s2在s1中的位置gen na2=strpos(a, 2=0gen na3=strpos(a, 3gen na4=strpos(a, 4list a 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(nam

16、e,2) /新变量name2,取值为name的第二个字母 list n*5.5 分类操作byedit *将下表复制粘贴到STATA数据编辑器中,注意粘贴时把光标停在第一格。xy1.11.21.32.12.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 n

17、1=_n /注意到n1与n的不同,n1按x分类进行操作 gen N1=_N 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.dtahhid86365728540要求:(1)生成一个新变量hh

18、size,该变量表示共有多少个家庭成员。(2)给每个家庭成员一个编码id。如第一个家庭的第一个成员编码为11;(3)按家庭生成一个全家成员平均年龄值mage。(4)对每个家庭,分别按年龄大小排序,然后生成一个家庭成员代码,即家庭内年龄最小的成员代码为1,年龄最大的家庭成员,代码为nid。最后需要生成的数据集如下:hhsizeidmagenid1549.8131231441122292321请自己先思考,再参考如下操作 :将上表数据复制粘贴到STATA数据编辑器,然后执行下面的命令use family, clearby hhid,sort :gen hhsize=_N /得到家庭规模hhsize

19、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 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. |

20、2 5 3 21 29 1 | 7. | 2 40 3 22 29 2 | 8. | 2 42 3 23 29 3 |另一个例子:bysort hhid (age): gen nid1=_n /括号中的变量age只排序,不参于分组。bysort hhid age: gen nid2=_n / hhid 和ag e都既用来参与排序也分组list /比较上面两个命令得到的不同结果 hhid age nid1 nid2 -1. 1 28 1 1 2. 1 36 2 1 3. 1 42 3 1 4. 1 57 4 1 5. 1 86 5 1 6. 2 5 1 1 7. 2 40 2 1 8. 2 42 3 1webuse stan2, clearexpand 2 if transplant /将transplant=1的观察值再复制一个sort idby id: generate byte posttran = (_n=2) /*生成一个新变量posttran,使得 对同一个人,第一个观察值取0,第 二个观察值取1*/ generate t1 = stime if _n=_N /*生成新变量t1,使得在同一个id下, 对第二期取值为stime,否则为“.”

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2