STATA入门5函数与运算符
- 格式:doc
- 大小:112.50 KB
- 文档页数:12
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() 均匀分布随机数invnormal(uniform()) 标准正态分布随机数字符函数real(s) 字符型转化为数值型string(n) 数值型转化为字符型substr(s,n1,n2) 从S的第n1个字符开始,截取n2个字符Substr(“this”,2,2)=is word(s,n) 返回s的第n个字符 Wor k(“this”,3)=ichar(n) 返回字符的ASCII码indexnot(s1,s2) 返回s1中第一个在s2中找不到的字母的位置,若s1所有的字母在s2中均可以找到,则返回0例如:indexnot("12disxl","2fsd1")=4 indexnot("12disxl","2fsd1ixs")=7indexnot("12disxl","2fsd1lixs")=0itrim(s) 将字符间多于一个空格缩减为一个空格例如:itrim("hello there") = "hello there"length(s) 返回字符串s的长度例如:length("ab") = 2lower(s) 将s中的字母变为xiaoxie例如:lower("THIS") = "this"ltrim(s) 将字符串s中首字母之前的空格去掉例如:ltrim(" this") = "this"plural(n,s) or plural(n,s1,s2)如果n!=+/-1, plural(n,s)就是将"s"加到s后。
stata函数Stata是一种用于统计分析和数据管理的软件,拥有强大的数据分析能力和丰富的函数库。
本文将介绍一些常用的Stata函数及其使用方法,帮助读者更好地理解和使用Stata进行数据分析。
1. summarize函数summarize函数用于对数值型变量进行描述性统计分析,包括计算变量的均值、标准差、最小值、最大值等。
例如,对于一个名为"income"的变量,可以使用以下命令进行描述性统计分析:summarize income该函数的输出结果包括均值、标准差、最小值、最大值、缺失值个数等信息。
2. generate函数generate函数用于创建新的变量,并对其赋值。
例如,可以使用以下命令创建一个新的变量"age_squared",并将"age"的平方赋值给它:generate age_squared = age^2该函数可以根据已有的变量进行计算,并将结果保存为新的变量。
3. sort函数sort函数用于对数据集按照指定变量进行排序。
例如,可以使用以下命令对数据集按照"age"变量进行升序排序:sort age该函数可以方便地对数据集进行排序,便于后续的数据分析操作。
4. merge函数merge函数用于将两个数据集按照指定变量进行合并。
例如,假设有两个数据集分别为"dataset1"和"dataset2",并且它们都有一个名为"ID"的变量,可以使用以下命令将两个数据集按照"ID"变量进行合并:merge dataset1 dataset2 using ID该函数可以将两个数据集中的相同"ID"值的观测合并到一起,方便进行分析和比较。
5. regress函数regress函数用于进行线性回归分析。
例如,可以使用以下命令对一个因变量"y"和两个自变量"x1"和"x2"进行线性回归分析:regress y x1 x2该函数可以得到回归系数、截距、残差等回归结果,并进行显著性检验和拟合优度分析。
stata运算加减乘除运算Stata是一款广泛使用的统计软件,可以进行各种数据分析和操作。
其中,加减乘除运算是Stata基本的数值运算之一,下面我们来详细介绍一下。
1. 加法运算Stata中进行两个数的加法运算可以使用'+'号,例如:```Stata2 + 3```这个运算会得到结果'5'。
如果要将运算结果赋值给一个变量,可以使用'generate'命令,例如:```Statagenerate new_var = 2 + 3```这个命令会创建一个新变量'new_var',其值为'5'。
2. 减法运算Stata中进行两个数的减法运算可以使用'-'号,例如:```Stata5 - 2```这个运算会得到结果'3'。
同样,如果要将运算结果赋值给一个变量,可以使用'generate'命令,例如:generate new_var = 5 - 2```这个命令会创建一个新变量'new_var',其值为'3'。
3. 乘法运算Stata中进行两个数的乘法运算可以使用'*'号,例如:```Stata2 * 3```这个运算会得到结果'6'。
同样,如果要将运算结果赋值给一个变量,可以使用'generate'命令,例如:```Statagenerate new_var = 2 * 3```这个命令会创建一个新变量'new_var',其值为'6'。
4. 除法运算Stata中进行两个数的除法运算可以使用'/'号,例如:```Stata6 / 3```这个运算会得到结果'2'。
同样,如果要将运算结果赋值给一个变量,可以使用'generate'命令,例如:generate new_var = 6 / 3```这个命令会创建一个新变量'new_var',其值为'2'。
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() 均匀分布随机数invnormal(uniform()) 标准正态分布随机数字符函数real(s) 字符型转化为数值型string(n) 数值型转化为字符型substr(s,n1,n2) 从S的第n1个字符开始,截取n2个字符Substr(“this”,2,2)=is word(s,n) 返回s的第n个字符Work(“this”,3)=ichar(n) 返回字符的ASCII码indexnot(s1,s2) 返回s1中第一个在s2中找不到的字母的位置,若s1所有的字母在s2中均可以找到,则返回0例如:indexnot("12disxl","2fsd1")=4 indexnot("12disxl","2fsd1ixs")=7indexnot("12disxl","2fsd1lixs")=0itrim(s) 将字符间多于一个空格缩减为一个空格例如:itrim("hello there") = "hello there"length(s) 返回字符串s的长度例如:length("ab") = 2lower(s) 将s中的字母变为xiaoxie例如:lower("THIS") = "this"ltrim(s) 将字符串s中首字母之前的空格去掉例如:ltrim(" this") = "this"plural(n,s) or plural(n,s1,s2)如果n!=+/-1, plural(n,s)就是将"s"加到s后。
Stata操作讲义知识讲解S t a t a操作讲义Stata操作讲义第一讲 Stata操作入门第一节概况Stata最初由美国计算机资源中心(Computer Resource Center)研制,现在为Stata公司的产品,其最新版本为7.0版。
它操作灵活、简单、易学易用,是一个非常有特色的统计分析软件,现在已越来越受到人们的重视和欢迎,并且和SAS、SPSS一起,被称为新的三大权威统计软件。
Stata最为突出的特点是短小精悍、功能强大,其最新的7.0版整个系统只有10M左右,但已经包含了全部的统计分析、数据管理和绘图等功能,尤其是他的统计分析功能极为全面,比起1G以上大小的SAS系统也毫不逊色。
另外,由于Stata在分析时是将数据全部读入内存,在计算全部完成后才和磁盘交换数据,因此运算速度极快。
由于Stata的用户群始终定位于专业统计分析人员,因此他的操作方式也别具一格,在Windows席卷天下的时代,他一直坚持使用命令行/程序操作方式,拒不推出菜单操作系统。
但是,Stata的命令语句极为简洁明快,而且在统计分析命令的设置上又非常有条理,它将相同类型的统计模型均归在同一个命令族下,而不同命令族又可以使用相同功能的选项,这使得用户学习时极易上手。
更为令人叹服的是,Stata语句在简洁的同时又拥有着极高的灵活性,用户可以充分发挥自己的聪明才智,熟练应用各种技巧,真正做到随心所欲。
除了操作方式简洁外,Stata的用户接口在其他方面也做得非常简洁,数据格式简单,分析结果输出简洁明快,易于阅读,这一切都使得Stata成为非常适合于进行统计教学的统计软件。
Stata的另一个特点是他的许多高级统计模块均是编程人员用其宏语言写成的程序文件(ADO文件),这些文件可以自行修改、添加和下载。
用户可随时到Stata网站寻找并下载最新的升级文件。
事实上,Stata的这一特点使得他始终处于统计分析方法发展的最前沿,用户几乎总是能很快找到最新统计算法的Stata程序版本,而这也使得Stata 自身成了几大统计软件中升级最多、最频繁的一个。
stata函数一、简介stata是一款功能强大的统计分析软件,广泛应用于各个领域的数据分析。
stata提供了丰富的函数和命令,可以帮助用户进行数据的整理、探索、统计分析和模型建立等工作。
本文将介绍一些常用的stata函数,以及它们在数据分析中的应用。
二、描述统计1. summarize函数summarize函数用于计算数据的基本统计量,包括均值、标准差、最小值、最大值等。
例如,我们可以使用以下命令计算变量x的基本统计量:```summarize x```2. tabulate函数tabulate函数用于计算分类变量的频数和比例,并生成交叉表。
例如,我们可以使用以下命令生成变量x和y的交叉表:```tabulate x y```三、数据整理1. merge函数merge函数用于将两个数据集按照共同的变量进行合并。
例如,我们可以使用以下命令将数据集A和数据集B按照变量id进行合并:```merge 1:1 id using A B```2. reshape函数reshape函数用于改变数据集的结构,将宽数据集转换为长数据集或者将长数据集转换为宽数据集。
例如,我们可以使用以下命令将宽数据集转换为长数据集:```reshape long x, i(id) j(year)```四、统计分析1. regress函数regress函数用于进行线性回归分析。
例如,我们可以使用以下命令进行简单线性回归分析:```regress y x```2. logistic函数logistic函数用于进行逻辑回归分析。
例如,我们可以使用以下命令进行二分类逻辑回归分析:```logistic y x```3. anova函数anova函数用于进行方差分析。
例如,我们可以使用以下命令进行单因素方差分析:```anova y x```五、图表绘制1. histogram函数histogram函数用于绘制直方图。
例如,我们可以使用以下命令绘制变量x的直方图:```histogram x```2. scatter函数scatter函数用于绘制散点图。
5函数与运算符5.1运算符expSTATA 共有四种运算,分别是代数运算、字符运算、关系运算和逻辑运算。
运算的优先序:!(或~),^,-(负号),/,*,-(减),+,!=(或~=),>,<,<=,>=,==,&,| 当不确定优先序的时候,最好用括号将优先序直接表达出来。
5.1.1代数运算包括加(+)、减(-)、乘(*)、除(/),幂(^)和负数(-),当遇到缺失值或者运算不可行时(比如除数为零)均会得到缺失值。
例:求正式的值,若x=4,y=2,显然经过心算,应该为:-1xyy 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 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 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==05.2函数概览function函数只不过是一些编号的小程序,它会按一定的规则进行处理,之后报告结果。
实际上,谁也记不住这么多函数,因此,首先要学会查找函数的帮助,当记不住的时候,随时去查寻帮助。
记住下面的命令才是最关键的。
. help functionType of function See help--------------------------------------+-------------------------Mathematical functions math functionsProbability distributions anddensity functions density functionsRandom-number functions random-number functionsString functions string functionsProgramming functions programming functionsDate functions date functionsTime-series functions time-series functionsMatrix functions matrix functions弹出来的对话框告诉我们,STATA包括八类函数,分别是数学函数,分布函数,随机数函数,字符函数,程序函数,日期函数,时间序列函数和矩阵函数。
本章主要介绍数学函数和字符函数,其他函数将在后面相应的章节介绍。
5.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数学函数可以直接对数据进行运算,也可以对变量进行运算。
对变量的操作:clearset obs 5gen x=_n//生成新变量x,取值为1,2,3,4,5gen 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和egenclearset obs 5gen x=_n //生成新变量x, x的取值从1到5gen 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+cegen havg = rowmean(x y z) //求havg=(a+b+c)/3egen 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 egen5.3.4其他sysuse auto, clearegen rmpg = rank(mpg) //求mpg的次序sort rmpglist mpg rank//列示结果egen highrep78 = anyvalue(rep78), v(3/5) /*若rep78不为3、4或5,则为缺失值*/list rep78 highrep78clearinput a b1 00 01 10 10 01 .. 0endegen ab=group(a b)egen ab2=group(a b),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字符函数string functions任务:将美国汽车数据中汽车商标变量值简化为取前三个字母,得到一个新的变量make3sysuse auto, cleargen str3 make3=substr(make,1,3)list make*任务:下表的数据是一个多选题,请把这道多选题转化为四个单选题gen 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 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 0webuse genxmpl2, cleargen name2 = word(name,2) //新变量name2,取值为name的第二个字母list n*5.5 分类操作byclearedit*将下表复制粘贴到STATA数据编辑器中,注意粘贴时把光标停在第一格。