查看原文
其他

Stata语言中的常用函数及其用法解释, 在附上42篇Stata相关学习资料

计量经济圈社群 计量经济圈 2022-05-11


凡是搞计量经济的,都关注这个号了

箱:econometrics666@sina.cn

所有计量经济圈方法论丛的code程序, 宏微观数据库和各种软件都放在社群里.欢迎到计量经济圈社群交流访问.

正文

关于Stata,可以参看:1.Stata16新增功能有哪些? 满满干货拿走不谢2.Stata资料全分享,快点收藏学习3.Stata统计功能、数据作图、学习资源4.Stata学习的书籍和材料大放送, 以火力全开的势头5.史上最全Stata绘图技巧, 女生的最爱,6.把Stata结果输出到word, excel的干货方案,7.编程语言中的函数什么鬼?Stata所有函数在此集结,8.世界范围内使用最多的500个Stata程序,9.6张图掌握Stata软件的方方面面, 还有谁, 还有谁? 10.LR检验、Wald检验、LM检验什么鬼?怎么在Stata实现,11.Stata15版新功能,你竟然没有想到,一睹为快,12."高级计量经济学及Stata应用"和"Stata十八讲"配套数据,13.数据管理的Stata程序功夫秘籍,14.非线性面板模型中内生性解决方案以及Stata命令15.把动态面板命令讲清楚了,对Stata的ado详尽解,16.半参数估计思想和Stata操作示例,17.Stata最有用的points都在这里,无可替代的材料18.PSM倾向匹配Stata操作详细步骤和代码,干货十足,19.随机前沿分析和包络数据分析 SFA,DEA 及Stata操作,20.福利大放送, Stata编程技巧和使用Tips大集成,21.使用Stata进行随机前沿分析的经典操作指南,22.Stata, 不可能后悔的10篇文章, 编程code和注解,23.用Stata学习Econometrics的小tips, 第二发礼炮,24.用Stata学习Econometrics的小tips, 第一发礼炮,25.广义合成控制法gsynth, Stata运行程序release,26.多重中介效应的估计与检验, Stata MP15可下载,27.输出变量的描述性统计的方案,28.2SLS第一阶段输出, 截面或面板数据及统计值都行,29.盈余管理指标的构建及其Stata实现程序, 对应解读和经典文献,30.Python, Stata, R软件史上最全快捷键合辑!,31.用Stata做面板数据分析, 操作代码应有尽有,32.用Stata做面板数据分析, 操作代码应有尽有,33.没有这5个Stata命令, 我真的会活不下去!,34.第一(二)卷.Stata最新且有趣的程序系列汇编,35.第三卷.Stata最新且急需的程序系列汇编,36.第四卷.Stata最新且急需的程序系列汇编,37.干货: UN和WTO推荐的最全且权威的实证研究方法及在Stata实现!必收藏!38.再中心化影响函数RIF回归和分解的Stata操作程序39.R和Stata软件meta分析操作详细攻略, 对研究再开展研究的利器!40.不能安装Stata命令咋弄?这个方法一直都比较靠谱!,41.使用Stata做结构方程模型GSEM的操作指南42.疫情期计量课程免费开放!面板数据, 因果推断, 时间序列分析与Stata应用

stata语言中的常用函数
Stata系统是一个统计分析系统,stata语言是实现stata系统功能的基础,因此它其中包括了各种各样的函数。在stata系统中,函数的自变量可以是一个常数,可以是一个变量,或者是一连串的变量。在调用这些函数的时候,只要将函数中定义中的这些变量替换为相应值即可。这一章,介绍一下这些函数的定义以及使用方法。

6.1函数概览
函数只不过是一些编号的小程序,它会按一定的规则进行处理,之后报告结果。实际上,谁也记不住这么多函数,因此,首先要学会查找函数的帮助,当记不住的时候,随时去查寻帮助。记住下面的命令才是最关键的。
. help function
弹出来的对话框告诉我们,STATA包括八类函数,分别是数学函数,分布函数,随机数函数,字符函数,程序函数,日期函数,时间序列函数和矩阵函数。本章主要介绍数学函数和字符函数,日期函数,随机函数等常用函数,其他函数可以参考stata 帮助功能。
6.2数学函数
l Abs(x)  x的绝对值
l Acos(x) 反余弦函数
例如:arcos (0.5)=1.57 arcos(1)=0
l Asin(x) 反正弦函数
l Atan(x) 反正切函数
l atanh(x) 反双曲正切函数
l ceil(x) 返回大于或等于自变量的最小的整数。
例如:ceil(0.7)=1 ceil(3)=3  ceil(-0.7)=0
l Floor(x) 返回小于或等于自变量的最大的整数
例如:floor(0.7)=0  floor(3)=3 floor(-0.7)=-1
l Int(x) 返回自变量的整数部分
例如:int(0.7)=0 int(2.9)=2 int(-2.55)=-2
l Round(x,y) 返回与y的单位最接近的数x,x为真数,y为近似单位
例如:round(5.2,1)= round(4.8,1)=5  round(2.234,0.1)=2.2  round(2.234,0.01)=2.23
round(2.234,0.001)=2.234  round(28,5)=30
l cloglog(x) 返回ln{-ln(1-x)}的值
l comb(n,k) 从n中取k个的组合,即comb(n,k)=n!/{k!(n - k)!}
例如:comb(10,5)=252 comb(6,2)=15
l cos(x) 余弦函数
l digamma(x) 返回digamma函数值,这是lngamma(x)的一阶导数
l exp(x) 指数函数
例如:exp(0)=1 exp(3)= 20.085537
l invcloglog(x) 返回invcloglog(x) = 1 - exp{-exp(x)}的值
l ln(x) 自然对数函数
l lnfactorial(n) 返回N阶乘的自然对数,即lnfactorial(n)= ln(n!) ,计算n!时用round(exp(lnfactorial(n)),1)函数保证得出的结果是一个整数。求n的阶乘的对数比单纯求阶乘更有用,因为存在溢出值问题。
l lngamma(x) 返回.gamma函数的自然对数
l log10(x) 以10为底对数函数
l logit(x) 返回logit函数值 logit(x)= ln{x/(1-x)}
l max(x1,x2,...,xn) 求x1, x2, ..., xn中的最大值
例如:max(1,2,3)=3
l min(x1,x2,...,xn) 求x1, x2, ..., xn中的最小值
例如:min(1,2,3)=3
l mod(x,y) 求x除以y的余数, 即mod(x,y) = x - y*int(x/y)
例如:mod(7,4)=3
l reldif(x,y) 返回x,y的相对差异值,reldif(x,y)= |x-y|/(|y|+1).如果x和y都是相同类型的缺失值,则返回0;如果只有一个为缺失值或x、y为不同类型的缺失值,则返回缺失值。
l sign(x)  求x的符号,如果为负数,则返回-1;如果为0,则返回0;如果为正数,则返回1;如果是缺失值,则返回缺失值
l sin(x)  正弦函数
l sqrt(x) 求x的平方根,x只能为非负数
例如:sqrt(100)=10
l sum(x) 返回x的和,将缺失值看成是0
l tan(x) 正切函数
l tanh(x) 双曲正切函数
l trigamma(x) 返回lngamma(x)的二阶导数
l trunc(x) 将数据截为特定的长度
6.3 概率分布和密度函数
l betaden(a,b,x) 返回β分布的概率密度,a,b为参数,如果x < 0或者 x > 1,返回0
l binomial(n,k,p) n次贝努里试验,取得成功次数小于或等于k次的概率,其中一次p为事件成功的概率 若k<0 返回1 ;若k>n 返回0
l binomialtail(n,k,p) n次贝努里试验,取得成功次数大于或等于k次的概率,其中一次p为事件成功的概率 若k<0 返回1 ;若k>n 返回0
l binormal(h,k,r) 返回自由度为n的卡方的分布,chi2(n,x) = gammap(n/2,x/2)。若x<0 ,则返回0
l chi2tail(n,x) chi2tail(n,x) = 1 - chi2(n,x)。若x<0 ,则返回1
l dgammapda(a,x) 返回gammap(a,x)分布函数关于a的偏微分,a>0. 若x<0 ,则返回0
l dgammapdada(a,x) 返回gammap(a,x)分布函数关于a的二阶偏微分,a>0. 若x<0 ,则返回0
l dgammapdadx(a,x) 返回gammap(a,x)分布函数关于a和x的二阶偏微分,a>0. 若x<0 ,则返回0
l dgammapdx(a,x) 返回gammap(a,x)分布函数关于x的偏微分,a>0. 若x<0 ,则返回0
l dgammapdxdx(a,x) 返回gammap(a,x)分布函数关于x的二阶偏微分,a>0. 若x<0 ,则返回0
l F(n1,n2,f) 返回分子自由度为n1,分母自由度为n2的F分布函数。若f<0 ,则返回0
l Fden(n1,n2,f) 分子自由度为n1,分母自由度为n2的F分布函数的概率密度函数。若f<0 ,则返回0
l gammap(a,x) gamma分布
l ibeta(a,b,x) β分布
l normal(z) 正态分布函数
l normalden(z) 标准正态分布密度函数
l tden(n,t) t分布的概率密度函数
6.4 随机数函数
l uniform() 产生服从均匀分布的随机数
l invnormal(uniform()) 标准正态分布的随机数
6.5字符函数
l char(n) 返回字符的ASCII码
l indexnot(s1,s2)  返回s1中第一个在s2中找不到的字母的位置,若s1所有的字母在s2中均可以找到,则返回0
例如:indexnot("12disxl","2fsd1")=4  indexnot("12disxl","2fsd1ixs")=7
  indexnot("12disxl","2fsd1lixs")=0
l itrim(s) 将字符间多于一个空格缩减为一个空格
例如:itrim("hello   there") = "hello there"
l length(s) 返回字符串s的长度
例如:length("ab") = 2
l lower(s) 将s中的字母变为xiaoxie
例如:lower("THIS") = "this"
l ltrim(s) 将字符串s中首字母之前的空格去掉
例如:ltrim(" this") = "this"
l plural(n,s) or plural(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"
l proper(s) 将首字母大写,而且将紧接着非字母字符后的字母大写,其他的字母小写
例如:proper("mR. joHn a. sMitH") = "Mr. John A. Smith"
  proper("jack o'reilly") = "Jack O'Reilly"
  proper("2-cent's worth") = "2-Cent'S Worth"
l real(s) 将s字符串转化为数字后返回,或返回“.”
例如:real("5.2")+1 = 6.2
  real("hello") = .  
l reverse(s) 将字符串颠倒过来
例如:reverse("hello") = "olleh"
l rtrim(s) 去掉字符串末尾的空格
例如:rtrim("this ") ="this".
l string(n) 将数字n转化为字符串
 例如:string(4)+"F" = "4F"
     string(1234567) = "1234567"
     string(12345678) = "1.23e+07"
     string(.) = "."  
l 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,"not a format") = ""
l strmatch(s1,s2) s2与s1的形式相同则返回1,否则返回0
例如:strmatch("17.4","1??4")=1 在s2中?代表此处有一个字符,*表示0或更多的字符
l strpos(s1,s2) s2在s1中第一次找到的位置,否则为0
例如:strpos("this","is") = 3
  strpos("this","it") = 0
l subinstr(s1,s2,s3,n) 返回s1,将s1中第n次出现s2时的s2替换成s3 ,若n为”.”,则将所有s1中的s2字符串替换成s3
例如:subinstr("this is this","is","X",1) = "thX is this"
  subinstr("this is this","is","X",2) = "thX X this"
  subinstr("this is this","is","X",.) = "thX X thX"
l 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) = ""
l trim(s) 将字符串s的首字母之前和末尾的空格去掉
例如:trim(" this ") ="this"
l upper(s) 将字符串s中的字母变为大写
例如:upper("this") ="THIS"
l word(s,n) s中第n个单词
例如:word("glass tass a td",2)=tass
  word("glass tass a td",.)=.
l wordcount(s) s中单词数
例如:wordcount("glass tass a td")=4
6.6 日期时间函数
l date(date, mask) 返回date与1960年1月1日相距的天数,其中mask的形式为“MDY”或“YMD”或“DMY”,表示date中年月日的顺序
l weekly(date, mask) 返回date与1960年1月1日相距的星期数
l monthly(date, mask) 返回date与1960年1月1日相距的月数
l quarterly(date, mask) 返回date与1960年1月1日相距的季度数
l halfyearly(date, mask) 返回date与1960年1月1日相距的星期数
l yearly(date, mask)  返回date与1960年1月1日相距有多少个半年
l clock(date, mask)  返回date与1960年1月1日相距的秒数
l mdyhms(M, D, Y, h, m, s) 从年月日,小时,分钟,秒得到stata日期时间值
l dhms(td, h, m, s) 从日期,小时,分钟,秒得到stata日期时间值
l hms(h, m, s)  从小时,分钟,秒返回一个stata日期时间值
l mdy(M, D, Y)  从月,日,年中得到一个stata日期值
l yw(Y, W)   从年,星期得到一个stata日期值,表示距1960年1月1日有多少个星期
l ym(Y, M)  从年,月得到一个stata日期值,表示距1960年1月1日有多少个月
l yq(Y, Q)   从年,季度得到一个stata日期值,表示距1960年1月1日有多少个季度
l yh(Y, H) 从年,半年得到一个stata日期值,表示距1960年1月1日有多少个半年
l year(d)      从stata日期中得到年份
l month(d)     从stata日期中得到月份
l day(d)      从stata日期中得到当前日期(一个月内的日期)
l doy(d)      从stata日期中得到当前日期(一年内的日期)
l quarter(d)    从stata日期中得到当前季度
l week(d)     从stata日期中得到当前星期    
l dow(d)     从stata日期中得到当前星期几,其中 0为星期天,3为星期三
例:请算算你活了多少天?示例:一个生于1975 年12 月27 日的家伙,他活了?
.di date(“1975/12/27”,”YMD”)
关于一些计量方法的合辑,各位学者可以参看如下文章:实证研究中用到的200篇文章, 社科学者常备toolkit”、实证文章写作常用到的50篇名家经验帖, 学者必读系列过去10年AER上关于中国主题的Articles专辑AEA公布2017-19年度最受关注的十大研究话题, 给你的选题方向2020年中文Top期刊重点选题方向, 写论文就写这些。后面,咱们又引荐了使用CFPS, CHFS, CHNS数据实证研究的精选文章专辑!这40个微观数据库够你博士毕业了, 反正凭着这些库成了教授Python, Stata, R软件史上最全快捷键合辑!关于(模糊)断点回归设计的100篇精选Articles专辑!关于双重差分法DID的32篇精选Articles专辑!关于合成控制法SCM的33篇精选Articles专辑!最近80篇关于中国国际贸易领域papers合辑!最近70篇关于中国环境生态的经济学papers合辑!使用CEPS, CHARLS, CGSS, CLHLS数据库实证研究的精选文章专辑!最近50篇使用系统GMM开展实证研究的papers合辑!
关于相关计量方法视频课程,文章,数据和代码,参看 1.面板数据方法免费课程, 文章, 数据和代码全在这里, 优秀学人好好收藏学习!2.双重差分DID方法免费课程, 文章, 数据和代码全在这里, 优秀学人必须收藏学习!3.工具变量IV估计免费课程, 文章, 数据和代码全在这里, 不学习可不要后悔!4.各种匹配方法免费课程, 文章, 数据和代码全在这里, 掌握匹配方法不是梦!5.断点回归RD和合成控制法SCM免费课程, 文章, 数据和代码全在这里, 有必要认真研究学习!6.空间计量免费课程, 文章, 数据和代码全在这里, 空间相关学者注意查收!
下面这些短链接文章属于合集,可以收藏起来阅读,不然以后都找不到了。

2.5年,计量经济圈近1000篇不重类计量文章,

可直接在公众号菜单栏搜索任何计量相关问题,

Econometrics Circle




数据系列空间矩阵 | 工企数据 | PM2.5 | 市场化指数 | CO2数据 |  夜间灯光 | 官员方言  | 微观数据 | 内部数据计量系列匹配方法 | 内生性 | 工具变量 | DID | 面板数据 | 常用TOOL | 中介调节 | 时间序列 | RDD断点 | 合成控制 | 200篇合辑 | 因果识别 | 社会网络 | 空间DID数据处理Stata | R | Python | 缺失值 | CHIP/ CHNS/CHARLS/CFPS/CGSS等 |干货系列能源环境 | 效率研究 | 空间计量 | 国际经贸 | 计量软件 | 商科研究 | 机器学习 | SSCI | CSSCI | SSCI查询 | 名家经验计量经济圈组织了一个计量社群,有如下特征:热情互助最多前沿趋势最多、社科资料最多、社科数据最多、科研牛人最多、海外名校最多。因此,建议积极进取和有强烈研习激情的中青年学者到社群交流探讨,始终坚信优秀是通过感染优秀而互相成就彼此的。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存