第六章 stata语言中的常用函数.docx

上传人:b****7 文档编号:10370133 上传时间:2023-02-10 格式:DOCX 页数:9 大小:18.68KB
下载 相关 举报
第六章 stata语言中的常用函数.docx_第1页
第1页 / 共9页
第六章 stata语言中的常用函数.docx_第2页
第2页 / 共9页
第六章 stata语言中的常用函数.docx_第3页
第3页 / 共9页
第六章 stata语言中的常用函数.docx_第4页
第4页 / 共9页
第六章 stata语言中的常用函数.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

第六章 stata语言中的常用函数.docx

《第六章 stata语言中的常用函数.docx》由会员分享,可在线阅读,更多相关《第六章 stata语言中的常用函数.docx(9页珍藏版)》请在冰豆网上搜索。

第六章 stata语言中的常用函数.docx

第六章stata语言中的常用函数

第六章stata语言中的常用函数

本章重点:

Stata系统是一个统计分析系统,stata语言是实现stata系统功能的基础,因此它其中包括了各种各样的函数。

在stata系统中,函数的自变量可以是一个常数,可以是一个变量,或者是一连串的变量。

在调用这些函数的时候,只要将函数中定义中的这些变量替换为相应值即可。

这一章,介绍一下这些函数的定义以及使用方法。

6.1函数概览

函数只不过是一些编号的小程序,它会按一定的规则进行处理,之后报告结果。

实际上,谁也记不住这么多函数,因此,首先要学会查找函数的帮助,当记不住的时候,随时去查寻帮助。

记住下面的命令才是最关键的。

.helpfunction

弹出来的对话框告诉我们,STATA包括八类函数,分别是数学函数,分布函数,随机数函数,字符函数,程序函数,日期函数,时间序列函数和矩阵函数。

本章主要介绍数学函数和字符函数,日期函数,随机函数等常用函数,其他函数可以参考stata帮助功能。

6.2数学函数

●Abs(x)x的绝对值

●Acos(x)反余弦函数

例如:

arcos(0.5)=1.57arcos

(1)=0

●Asin(x)反正弦函数

●Atan(x)反正切函数

●atanh(x)反双曲正切函数

●ceil(x)返回大于或等于自变量的最小的整数。

例如:

ceil(0.7)=1ceil(3)=3ceil(-0.7)=0

●Floor(x)返回小于或等于自变量的最大的整数

例如:

floor(0.7)=0floor(3)=3floor(-0.7)=-1

●Int(x)返回自变量的整数部分

例如:

int(0.7)=0int(2.9)=2int(-2.55)=-2

●Round(x,y)返回与y的单位最接近的数x,x为真数,y为近似单位

例如:

round(5.2,1)=round(4.8,1)=5round(2.234,0.1)=2.2round(2.234,0.01)=2.23

round(2.234,0.001)=2.234round(28,5)=30

●cloglog(x)返回ln{-ln(1-x)}的值

●comb(n,k)从n中取k个的组合,即comb(n,k)=n!

/{k!

(n-k)!

}

例如:

comb(10,5)=252comb(6,2)=15

●cos(x)余弦函数

●digamma(x)返回digamma函数值,这是lngamma(x)的一阶导数

●exp(x)指数函数

例如:

exp(0)=1exp(3)=20.085537

●invcloglog(x)返回invcloglog(x)=1-exp{-exp(x)}的值

●ln(x)自然对数函数

●lnfactorial(n)返回N阶乘的自然对数,即lnfactorial(n)=ln(n!

),计算n!

时用round(exp(lnfactorial(n)),1)函数保证得出的结果是一个整数。

求n的阶乘的对数比单纯求阶乘更有用,因为存在溢出值问题。

●lngamma(x)返回.gamma函数的自然对数

●log10(x)以10为底对数函数

●logit(x)返回logit函数值logit(x)=ln{x/(1-x)}

●max(x1,x2,...,xn)求x1,x2,...,xn中的最大值

例如:

max(1,2,3)=3

●min(x1,x2,...,xn)求x1,x2,...,xn中的最小值

例如:

min(1,2,3)=3

●mod(x,y)求x除以y的余数,即mod(x,y)=x-y*int(x/y)

例如:

mod(7,4)=3

●reldif(x,y)返回x,y的相对差异值,reldif(x,y)=|x-y|/(|y|+1).如果x和y都是相同类型的缺失值,则返回0;如果只有一个为缺失值或x、y为不同类型的缺失值,则返回缺失值。

●sign(x)求x的符号,如果为负数,则返回-1;如果为0,则返回0;如果为正数,则返回1;如果是缺失值,则返回缺失值

●sin(x)正弦函数

●sqrt(x)求x的平方根,x只能为非负数

例如:

sqrt(100)=10

●sum(x)返回x的和,将缺失值看成是0

●tan(x)正切函数

●tanh(x)双曲正切函数

●trigamma(x)返回lngamma(x)的二阶导数

●trunc(x)将数据截为特定的长度

6.3概率分布和密度函数

●betaden(a,b,x)返回β分布的概率密度,a,b为参数,如果x<0或者x>1,返回0

●binomial(n,k,p)n次贝努里试验,取得成功次数小于或等于k次的概率,其中一次p为事件成功的概率若k<0返回1;若k>n返回0

●binomialtail(n,k,p)n次贝努里试验,取得成功次数大于或等于k次的概率,其中一次p为事件成功的概率若k<0返回1;若k>n返回0

●binormal(h,k,r)返回自由度为n的卡方的分布,chi2(n,x)=gammap(n/2,x/2)。

若x<0,则返回0

●chi2tail(n,x)chi2tail(n,x)=1-chi2(n,x)。

若x<0,则返回1

●dgammapda(a,x)返回gammap(a,x)分布函数关于a的偏微分,a>0.若x<0,则返回0

●dgammapdada(a,x)返回gammap(a,x)分布函数关于a的二阶偏微分,a>0.若x<0,则返回0

●dgammapdadx(a,x)返回gammap(a,x)分布函数关于a和x的二阶偏微分,a>0.若x<0,则返回0

●dgammapdx(a,x)返回gammap(a,x)分布函数关于x的偏微分,a>0.若x<0,则返回0

●dgammapdxdx(a,x)返回gammap(a,x)分布函数关于x的二阶偏微分,a>0.若x<0,则返回0

●F(n1,n2,f)返回分子自由度为n1,分母自由度为n2的F分布函数。

若f<0,则返回0

●Fden(n1,n2,f)分子自由度为n1,分母自由度为n2的F分布函数的概率密度函数。

若f<0,则返回0

●gammap(a,x)gamma分布

●ibeta(a,b,x)β分布

●normal(z)正态分布函数

●normalden(z)标准正态分布密度函数

●tden(n,t)t分布的概率密度函数

6.4随机数函数

●uniform()产生服从均匀分布的随机数

●invnormal(uniform())标准正态分布的随机数

6.5字符函数

●char(n)返回字符的ASCII码

●indexnot(s1,s2)返回s1中第一个在s2中找不到的字母的位置,若s1所有的字母在s2中均可以找到,则返回0

例如:

indexnot("12disxl","2fsd1")=4indexnot("12disxl","2fsd1ixs")=7

indexnot("12disxl","2fsd1lixs")=0

●itrim(s)将字符间多于一个空格缩减为一个空格

例如:

itrim("hellothere")="hellothere"

●length(s)返回字符串s的长度

例如:

length("ab")=2

●lower(s)将s中的字母变为xiaoxie

例如:

lower("THIS")="this"

●ltrim(s)将字符串s中首字母之前的空格去掉

例如:

ltrim("this")="this"

●plural(n,s)orplural(n,s1,s2)如果n!

=+/-1,plural(n,s)就是将"s"加到s后。

如果s2前有"+",表示将s2加到s1后,如果s2前为"-",则返回s1中去掉s2字符串后剩下的字符串。

如果s2前既没有"+"也没有"-",则plural(n,s1,s2)=s2.

例如:

plural(1,"horse")="horse"

plural(2,"horse")="horses"

plural(2,"glass","+es")="glasses"

plural(1,"mouse","mice")="mouse"

plural(2,"mouse","mice")="mice"

plural(2,"abcdefg","-efg")="abcd"

●proper(s)将首字母大写,而且将紧接着非字母字符后的字母大写,其他的字母小写

例如:

proper("mR.joHna.sMitH")="Mr.JohnA.Smith"

proper("jacko'reilly")="JackO'Reilly"

proper("2-cent'sworth")="2-Cent'SWorth"

●real(s)将s字符串转化为数字后返回,或返回“.”

例如:

real("5.2")+1=6.2

real("hello")=.

●reverse(s)将字符串颠倒过来

例如:

reverse("hello")="olleh"

●rtrim(s)去掉字符串末尾的空格

例如:

rtrim("this")="this".

●string(n)将数字n转化为字符串

例如:

string(4)+"F"="4F"

string(1234567)="1234567"

string(12345678)="1.23e+07"

string(.)="."

●string(n,s)将数字n转化为字符串

例如:

string(4,"%9.2f")="4.00"

string(123456789,"%11.0g")="123456789"

string(123456789,"%13.0gc"="123,456,789"

string(0,"%td")="01jan1960"

string(225,"%tq")="2016q2"

string(225,"notaformat")=""

●strmatch(s1,s2)s2与s1的形式相同则返回1,否则返回0

例如:

strmatch("17.4","1?

?

4")=1在s2中?

代表此处有一个字符,*表示0或更多的字符

●strpos(s1,s2)s2在s1中第一次找到的位置,否则为0

例如:

strpos("this","is")=3

strpos("this","it")=0

●subinstr(s1,s2,s3,n)返回s1,将s1中第n次出现s2时的s2替换成s3,若n为”.”,则将所有s1中的s2字符串替换成s3

例如:

subinstr("thisisthis","is","X",1)="thXisthis"

subinstr("thisisthis","is","X",2)="thXXthis"

subinstr("thisisthis","is","X",.)="thXXthX"

●substr(s,n1,n2)返回s1的子集,从s1中第n1个字符开始抽取,抽n2个字符

例如:

substr("abcdef",2,3)="bcd"

substr("abcdef",-3,2)="de"

substr("abcdef",2,.)="bcdef"

substr("abcdef",-3,.)="def"

substr("abcdef",2,0)=""

substr("abcdef",15,2)=""

●trim(s)将字符串s的首字母之前和末尾的空格去掉

例如:

trim("this")="this"

●upper(s)将字符串s中的字母变为大写

例如:

upper("this")="THIS"

●word(s,n)s中第n个单词

例如:

word("glasstassatd",2)=tass

word("glasstassatd",.)=.

●wordcount(s)s中单词数

例如:

wordcount("glasstassatd")=4

6.6日期时间函数

●date(date,mask)返回date与1960年1月1日相距的天数,其中mask的形式为“MDY”或“YMD”或“DMY”,表示date中年月日的顺序

●weekly(date,mask)返回date与1960年1月1日相距的星期数

●monthly(date,mask)返回date与1960年1月1日相距的月数

●quarterly(date,mask)返回date与1960年1月1日相距的季度数

●halfyearly(date,mask)返回date与1960年1月1日相距的星期数

●yearly(date,mask)返回date与1960年1月1日相距有多少个半年

●clock(date,mask)返回date与1960年1月1日相距的秒数

●mdyhms(M,D,Y,h,m,s)从年月日,小时,分钟,秒得到stata日期时间值

●dhms(td,h,m,s)从日期,小时,分钟,秒得到stata日期时间值

●hms(h,m,s)从小时,分钟,秒返回一个stata日期时间值

●mdy(M,D,Y)从月,日,年中得到一个stata日期值

●yw(Y,W)从年,星期得到一个stata日期值,表示距1960年1月1日有多少个星期

●ym(Y,M)从年,月得到一个stata日期值,表示距1960年1月1日有多少个月

●yq(Y,Q)从年,季度得到一个stata日期值,表示距1960年1月1日有多少个季度

●yh(Y,H)从年,半年得到一个stata日期值,表示距1960年1月1日有多少个半年

●year(d)从stata日期中得到年份

●month(d)从stata日期中得到月份

●day(d)从stata日期中得到当前日期(一个月内的日期)

●doy(d)从stata日期中得到当前日期(一年内的日期)

●quarter(d)从stata日期中得到当前季度

●week(d)从stata日期中得到当前星期

●dow(d)从stata日期中得到当前星期几,其中0为星期天,3为星期三

例:

请算算你活了多少天?

示例:

一个生于1975年12月27日的家伙,他活了?

.didate(“1975/12/27”,”YMD”)

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1