chap16 STATA编程基础
Stata软件基本操作和数据分析入门(完整版讲义)

Stata软件基本操作和数据分析入门(完整版讲义)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自身成了几大统计软件中升级最多、最频繁的一个。
chap第一章Stata软件概述解读

1.2 Stata窗口及基本操作
? 从图1.1中可以看出,Stata与其他操作软件一样,具有 正常的标题栏、菜单栏、工具栏和状态栏,在这里着 重介绍一下菜单栏,因为它是用户进行菜单操作的主 要媒介和工具。菜单栏主要包括File、Edit、Data、 Graphics、Statistics、User、Window、Help这八个子 菜单。由于Stata主要是通过命令进行操作,所以这里 只是简要介绍一下各个菜单的功能。
? (7)Window主要是用于对显示界面的操作,主要包 括对Review、Results、Variables、Command四大窗 口的操作。
1.2 Stata窗口及基本操作
? Stata最主要的部分是由四大窗口组成的,它们是分别是命 令回顾窗口(Review)、结果窗口(Results)、变量窗口 (Variables)、和命令输入窗口(Command),接下来, 将会详细地介绍一下这四个窗口。
1.2 Stata窗口及基本操作
? 1.2.2Stata帮助系统
? Stata为用户提供了强大的帮助系统,新用户可以通过 帮助系统的应用,更好地利用Stata完成自己所需要的 功能和操作。Stata的帮助系统主要由Stata手册、Stata 自带帮助和网络帮助三个方面组成。
? (一)Stata手册是一本学习Stata使用的权威书籍,它 按字母顺序排列出了Stata所有相关的命令。
? (1)File的下拉菜单包括打开、保存、查看文件,导 入、导出数据以及打印等等功能。
? (2)Edit的下拉菜单包括数据的复制、粘贴等有关数 据管理和设置的功能。
1.2 Stata窗口及基本操作
? (3)Data的下拉菜单包括数据的描述、编辑、浏览、 增加或删除变量、文件合并、矩阵操作等方面的内容.
stata入门中文讲义_经济学_高等教育_教育专区

Stata及数据处理目录第一章STATA基础 (3)1.1 命令格式 (4)1.2 缩写、关系式和错误信息 (6)1.3 do文件 (6)1.4 标量和矩阵 (7)1.5 使用Stata命令的结果 (8)1.6 宏 (10)1.7 循环语句 (11)1.8 用户写的程序 (15)1.9 参考文献 (15)1.10 练习 (15)第二章数据管理和画图 (18)2.1数据类型和格式 (18)2.2 数据输入 (19)2.3 画图 (21)第3章线性回归基础 (22)3.1 数据和数据描述 (22)3.1.1 变量描述 (23)3.1.2 简单统计 (23)3.1.3 二维表 (23)3.1.4 加统计信息的一维表 (26)3.1.5 统计检验 (26)3.1.6 数据画图 (27)3.2 回归分析 (28)3.2.1 相关分析 (28)3.2.2 线性回归 (29)3.2.3 假设检验 Wald test (30)3.2.4 估计结果呈现 (30)3.3 预测 (34)3.4 Stata 资源 (35)第4章数据处理的组织方法 (36)1、可执行程序的编写与执行 (36)方法1:do文件 (36)方法2:交互式-program-命令 (36)方法3:在do文件中使用program命令 (38)方法4:do文件合并 (39)方法5:ado 文件 (40)2、do文件的组织 (40)3、数据导入 (40)4、_n和_N的用法 (44)第一章STATA基础STATA的使用有两种方式,即菜单驱动和命令驱动。
菜单驱动比较适合于初学者,容易入学,而命令驱动更有效率,适合于高级用户。
我们主要着眼于经验分析,因而重点介绍命令驱动模式。
图1.1Stata12.1的基本界面关于STATA的使用,可以参考Stata手册,特别是[GS] Getting Started with Stata,尤其是第1章A sample session和第2章The Stata User Interface。
Stata入门介绍

三大权威统计软件之一
占用空间小,携带方便
操作灵活、简单、易学易用
功能非常强大
输出结果简单,运算速度极快
使用命令行/程序操作方式,新版本有菜单操
作系统
2013-822wwwthemegallerycom
LOGO
2
命 令 回 顾 窗 口
结果窗口
变量名窗口
命令窗口
LOGO
2013-822wwwthemegallerycom
行可以是变量名
LOGO
2013-822wwwthemegallerycom
13
①点击图标
,然后选择路径和文件名
Байду номын сангаас
②使用use命令 use c:\data1 即扩展名可以省略,如果Stata中已经修改或者建 立了数据集,则需要使用clear选项清除原有数据, 命令为: use c:\data1 , clear
还有数据编辑窗口、程序文件编辑窗口、帮助窗口、绘图 窗口等
LOGO
2013-822wwwthemegallerycom
5
Stata命令的基本语法格式如下: [ 特殊选项 ] 关键词 命令参数 [ , 命令选项 ]
注意所有命令、函数、变量名等都区分大小写,例如
“x”和“X”会被认为是两个不同的变量。
keep
list sort clear l so
保留某个变量:keep 变量名
显示数据 将记录按照指定顺序排序 清除数据库
LOGO 2013-822wwwthemegallerycom
18
用命令describe可描述数据库,查看数据库的基本 情况。假定数据库data2.dta已调入内存,键入
Stata 简介及基本操作ppt课件

精选版课件ppt
12
此时,可以点击 Save 图标(也可以点击菜单“File”→ “Save”),将数据存为Stata 格式的文件(扩展名为dta), 比如wanger_law.dta。
这样,以后就可以用Stata 直接打开这个数据集了(不 需要再从Excel 表中粘贴过来)。
打开的方式有两种。可以点击Open 图标(也可以点击 菜单“File”→“Open”),然后寻找要打开的dta 文件的位 置。
kernel = epanechnikov, bandwidth = 6128.97
精选版课件ppt
17
如果想删除满足“year ≥2001”条件的观测值,则可 使用命令: . drop if year>=2001
反之,如果只想保留满足“year≥2001”条件的观测值, 而删去所有其他观测值: . keep if year>=2001
精选版课件ppt
18
5.考察变量的统计特征 如果想看变量 gov、gcons和gdp的统计特征,可输入命令:
Max 76299.93 44396.9 340506.9
满足条件的统计: . summarize gov gcons gdp if year>2000
如果不指明变量,则将显示数据集中所有变量的统计指标。 summarize
如果要显示内存中某些变量之间的相关系数,可输入命令: . correlate gov gcons pop gdp
. clear 这样,内存中所有的当前数据都被清空,然后可以再打
开另外一个数据集。
精选版课件ppt
14
2.变量的标签 在变量窗口,每个变量的“名字”(Name)旁边显示了
其“标签”(label)。但目前的标签过于简略,缺乏变量的 解 释信息。
stata操作介绍之编程简介

全局宏
在STATA程序运行的整个过程中都一直存在。
5.2 局部宏与全局宏
5.2.1 局部宏
【例5-1】请定义一个计数宏count从1到4,定义一个包含四个国家简写(US UK DE FR)的局部宏country,然后通过使用foreach语句(循环语句foreach 会在13.4节详细介绍)和display语句生成如下样式的结果:
Country 1 : US Country 2 : UK Country 3 : DE Country 4 : FR 【例5-2】请定义一个计数宏count从1到4,定义一个包含四个国家简写(US
UK DE FR)的局部宏country,然后通过使用foreach语句(循环语句foreach 会在)和display语句生成如下样式的结果: 1 US 2 UK 3 DE 4 FR
14.6.1 r类命令 下面让我们从最简单的r类命令入手。理论上说,所有的Stata命令
都会将其所有的输出项存放在一个返回列表中。输入命令:
return list
就可以获得这些输出项。
举例
【例5-6】 打开数据集wage.dta,使用describe命令描述该数据 集,然后返回describe命令中的输出项。
5.5.2 foreach语句
foreach lname {in|of listtype} list {
commands referring to `lname'
}
可以使用的类型包括:
对于每一个局部宏
foreach lname of local lmacname { 对于每一个全局宏
Stata 16 用户指南说明书

Austin Nichols***********************@austnncholsOne Weird TrickHow to analyze experiments•The only way to be sure we are estimating unbiased causal impacts ofa “treatment” (intervention, policy, program) is to compare means via anexperiment (Freedman 2018a,b, Lin 2013)•But we can always do better by conditioning on observable (pre-treatment) characteristics: these “covariates” can reduce MSE–Stratification/blocking preferred to post hoc statistical adjustment but has its own limitations (Kallus 2018)–How should one adjust for covariates if using a regression to analyze the experimental data? What variables should be included?❖Use the LASSO! Specifically, poregress, dsregress, xporegress, etc.•New to Stata as of Stata 16, explained in the new [LASSO] manual and in Drukker(2019)Partialing out• A series of seminal papers by Belloni, Chernozhukov, and many others (see references) derived partialing-out estimators that provide reliable inference for d after one uses covariate selection to determine which of many covariates “belong” in the model for outcome YY = A d + X g + ewhere A is a treatment variable of interest and X measures the (possibly verylarge) set of potential covariates, but many elements of g are zero •Essentially, run separate LASSO regressions of Y and A on X and regress residualizedŸon residualizedÄ (where Ä = A –Â )•The cost of using these poregress, dsregress, xporegress methods is that they do not produce estimates for the covariate coefficients gStata 16 LASSO manual page 12Add’l Stata implementations•ssc desc lassopack, ssc desc pdslasso(Ahrens, Hansen, and Schaffer 2018) released prior to Stata 16 implementations–They implement the LASSO (Tibshirani1996) and the square-root-lasso (Belloni et al. 2011, 2014).–These estimators can be used to select controls (pdslasso) or instruments (ivlasso) from a large set of variables (possibly numbering more than thenumber of observations), in a setting where the researcher is interested inestimating the causal impact of one or more (possibly endogenous) causal variables of interest.–Two approaches are implemented in pdslasso and ivlasso: (1) The "post-double-selection" (PDS) methodology of Belloni et al. (2012, 2013, 2014,2015, 2016). (2) The "post-regularization" (CHS) methodology ofChernozhukov, Hansen and Spindler (2015). For instrumental variableestimation, ivlasso implements weak-identification-robust hypothesis tests and confidence sets using the Chernozhukov et al. (2013) sup-score test.Regression for experiments•Note that in the model for outcome YY = A d + X g + e•We really should never care about the “effect” of any element of X conditional on A and other elements of X, i.e. we should not care one whit about estimates of g•In expectation, A and X are uncorrelated; we just want a data-driven way to eliminate chance correlation between X and A for any X that also has effects on Y in order to reduce the variance of our estimates of d•These and other points arose in email correspondence in 2016-2017 with David Judkins who has used LASSO in subsequent studies (Judkins 2019)Okay, LASSO, but what kind?•Chetverikov, Liao, and Chernozhukov(2019) show “the cross-validated LASSO estimator achieves the fastest possible rate of convergence in the prediction norm up toa small logarithmic factor”•Drukker(2019) suggests the plug-in estimator has better small-sample performance in simulations (not reported)• A bootstrap could give out-of-sample performance measures akin to RandomForest regressionsSimulations•Suppose we have hundreds of candidate regressors, all distributed lognormal, all uncorrelated with each other• A few are correlated with Y (every 20th)•How big an improvement might we expect with the xporegress cross-fit partialing-out lasso linear regression with plug-in optimal lambda?Typical Simulation Results 10,000 iterationswith N=100Regressions use allavailable controls,zero to 80+Horizontal linesshow performanceof xporegress withCV or plug-inselection optionsConclusions•As we add useless regressors, MSE increases and the occasional useful regressor does not (necessarily) make up for that, but xporegress does better in every realistic case examined •Alternatives in e.g.Judkins (2019) can introduce bias or introduce size errors (rejection rates deviating from nominal size) but xporegress is safe on both frontsCredit (blame) for the title to TimOne Weird Trick (Nichols 2021)11ReferencesAhrens, A., C. Hansen, and M.E. Schaffer. 2018. pdslasso and ivlasso: Progams for post-selection and post-regularization OLS or IV estimation and inference. /c/boc/bocode/s458459.htmlBelloni, A., D. Chen, V. Chernozhukov, and C. Hansen. 2012. Sparse models and methods for optimal instruments with an application to eminent domain. Econometrica80: 2369–2429.Belloni, A., and V. Chernozhukov. 2013. Least squares after model selection in high-dimensional sparse models. Bernoulli19: 521–547.Belloni, A., V. Chernozhukov, and C. Hansen. 2013. Inference for high-dimensional sparse econometric models. In Advances in Economics and Econometrics: 10th World Congress, Vol. 3: Econometrics, Cambridge University Press: Cambridge, 245-295. Belloni, A., V. Chernozhukov, and C. Hansen. 2014a. High-dimensional methods and inference on structural and treatment effects. Journal of Economic Perspectives,28(2): 29–50.Belloni, A., V. Chernozhukov, and C. Hansen. 2014b. Inference on treatment effects after selection among high-dimensional controls. The Review of Economic Studies, 81(2):608–650.Belloni, A., Chernozhukov, V., Hansen, C. and Kozbur, D. 2016. Inference in High Dimensional Panel Models with an Application to Gun Control. Journal of Business and Economic Statistics 34(4):590-605.Belloni, A., Chernozhukov, V. and Wang, L. 2011. Square-root lasso: Pivotal recovery of sparse signals via conic programming. Biometrika98:791-806.Belloni, A., V. Chernozhukov, and L. Wang. 2014. Pivotal estimation via square-root-lasso in nonparametric regression. Annals of Statistics 42(2):757-788.Belloni, A., V. Chernozhukov, and Y. Wei. 2016. Post-selection inference for generalized linear models with many controls. Journal of Business & Economic Statistics34: 606–619.Bühlmann, P., and S. Van de Geer. 2011. Statistics for High-Dimensional Data: Methods, Theory and Applications. Berlin: Springer.Chernozhukov, V., D. Chetverikov, M. Demirer, E. Duflo, C. Hansen, W. Newey, and J. Robins. 2018. Double/debiased machine learning for treatment and structural parameters. The Econometrics Journal, 21(1): C1–C68.36 / 36Chernozhukov, V., D. Chetverikov, K. and Kato. 2013. Gaussian approximations and multiplier bootstrap for maxima of sums of high-dimensional random vectors. Annals of Statistics 41(6):2786-2819.Chernozhukov, V. Hansen, C., and Spindler, M. 2015. Post-selection and post-regularization inference in linear models with many controls and instruments. American Economic Review: Papers & Proceedings,105(5):486-490.Chetverikov, D., Z. Liao, and V. Chernozhukov. 2019. On cross-validated Lasso. arXiv Working Paper No. arXiv:1605.02214. /abs/1605.02214.Drukker, D. 2019. Using the lasso in Stata for inference in high-dimensional models. Presentation at London Stata Conference 5-6 September 2019.Freedman D. A. (2008a). On regression adjustments to experimental data. Adv. in Appl. Math. 40: 180–193. MR2388610Freedman, D. A. (2008b). On regression adjustments in experiments with several treatments. Ann. Appl. Stat. 2: 176–196. MR2415599Hastie, T., R. Tibshirani, and J. Friedman. 2009. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2nd ed. New York: Springer.Hastie, T., R. Tibshirani, and M. Wainwright. 2015. Statistical Learning with Sparsity: The Lasso and Generalizations. Boca Rotaon, FL: CRC Press.Judkins, D. 2019. “Covariate Selection in Small Randomized Studies.” https:///meetings/jsm/2019/onlineprogram/AbstractDetails.cfm?abstractid=307372Kallus, N. 2018. Optimal a priori balance in the design of controlled experiments. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 80(1), 85–112.Lin, Winston. 2013. "Agnostic notes on regression adjustments to experimental data: Reexamining Freedman’s critique." Ann. Appl. Stat. 7(1): 295 -318.Spindler, M., V. Chernozhukov, and Hansen, C. 2016. High-dimensional metrics. https:///package=hdm.Tibshirani, R. 1996. Regression shrinkage and selection via the lasso. Journal of the Royal Statistical Society, Series B58: 267–288.Yamada, H. 2017. The Frisch-Waugh-Lovell Theorem for the lasso and the ridge regression. Communications in Statistics -Theory and Methods 46(21):10897-10902.Zou, H. 2006. The adaptive Lasso and its oracle properties. Journal of the American Statistical Association101: 1418–1429.Zou, H., and T. Hastie. 2005. Regularization and variable selection via the elastic net. Journal of the Royal Statistical Society, Series B67: 301–320.12 One Weird Trick (Nichols 2021) ***********************。
第十四章 Stata编程基础

本章的内容包括do文件和log文件的介绍、局部宏和全局宏、标量和 矩阵、循环语句以及如何利用return list和ereturn list命令获得Stata 命令的结果,这些内容都是Stata编程的基础。
Page 2
STATA从入门到精通
14.1 do文件和Log文件 14.1.1 do文件的编写
下面让我们从最简单的r类命令入手。理论上说,所有的Stata命令都 会将其所有的输出项存放在一个返回列表中。输入命令:
return list
就可以获得这些输出项。
Page 20
STATA从入门到精通
【例14-8】 打开数据集wage.dta,使用describe命令描述该数据集, 然后返回describe命令中的输出项。
Page 14
STATA从入门到精通
显示定义好的所有标量:
. scalar list 删掉标量a和b:
. scalar drop a b
再比如如下两个命令,要求定义标量,并且将这个标量用于定义新的变 量: .scalar root2 = sqrt(2.0) //生成一个标量,其赋值为2的开根号 .generate DOuble rootGDP = gdp*root2 //将这个标量用于定义新的变 量
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4 版本 随着Stata版本的变化,相应的命令也会有些变化。这样,
较早版本的命令可能就没法在现在的版本中使用,而现在 的某些命令可能也没法在以后的版本中使用。为了让现在 的程序能够在其他的版本中继续使用,我们可以在程序中 声明所使用的版本;这样,在更新版本的Stata中运行这个 程序,Stata就会做相应的调整,按当前版本的方式来翻译 程序的命令。要声明版本,可输入命令: version 10.1 这里,我们使用的是10.1版的Stata。对于其他版本的Stata, 在version后面输入相应的版本编号即可。
此外,局部宏(以及全局宏)可以组合使用。例如,局部宏`i'为数值6,
宏`x6' 为字符newvar,则宏`x`i''就指代字符newvar。另外,在组合时, 我们可以通过大括号来设定运算的优先级。
如果要清除一个局部宏,可将其内容设置为空。这可以通过如下三种
方式实现: ①local macname ②local macname "" ③local macname = "" 这里,macname指宏的名称。 而如果我们在程序中直接使用了一个没有被定义的宏,则Stata会将其 当做一个内容为空的宏来处理。
例如,我们可以写这样一段命令: *this is an example use /*get data*/ "C:\Stata10\data\sample.dta" summarize age education /// occupation tab region // obtain summary statistics 如果去掉注释,上面的命令即为: use "C:\Stata10\data\sample.dta" summarize age education occupation
综合了以上几点,我们前面的do文件可以修改为这样的形
式: capture program drop examp program examp display “this is an example” end examp 这里,第一行先检查是否有已定义的examp程序,如果有 就将其从内存中删除。第二到四行是定义程序examp,最 后一行是执行程序examp。
下面,我们再在命令窗口输入命令: examp
也就是说,我们要执行程序examp。这时,Stata就会显示: this is an example
在随后的时间里,我们如果还想显示“this is an
example”,直接输入命令“exa种方式,即, 先在do文件中写出程序的命令并保存,再键入“do filename”,然后就可以在随后的时间使用该程序命令了。
对于do文件中的命令,值得注意的是,每一行命令都需要
结束于一个硬回车(包括最后一行);除非通过 “#delimit”命令设置其他符号为换行符。例如,输入命 令: #delimit . 则我们设置以英文的句号作为换行符,也就是说,Stata只 有遇到英文句号才会认为这一句命令结束。设置其他的换 行符对于将很长的命令分成几行很有帮助,因为这时我们 可以在想分行的地方输入回车符,而Stata又不会认为这是 一句命令的结束。 而如果我们想重新以硬回车(carriage return)为换行符, 可输入以下命令: #delimit cr
我们可以采取交互的方式定义程序(即,在Stata命令窗口中输入程序
的各行命令),但实际应用中,程序经常是被保存到一个do文件或 ado文件中去,从而方便以后的应用。 在程序或do文件中,我们可能需要加入注释,从而方便以后或他人的 阅读。通常,我们还会声明版本,从而使得程序能够在以后更高版本 的Stata中继续使用。此外,局部宏、全局宏、临时变量、临时矩阵和 临时文件等也会经常被使用。
2 Stata程序和Do文件 Stata处理程序和处理do文件的方式是一样的,包括参数的传递、结果
的表达等。但do文件和程序也存在一些小的差别。例如,要激发一个 do文件,我们需要键入“do filename”,而要激发一个程序,我们只 需要键入程序名称就可以。此外,键入“do filename”之后,Stata会 显示do文件中的命令以及执行结果;而键入程序名之后,Stata只会显 示其执行结果。 下面,我们重点讲一下,通常情况下,将程序放到do文件中去需要注 意的问题。 例如,我们编写了一个简单的程序: program examp display “this is an example” end 并把它保存到名为“examp.do”的文件中,且把文件置于当前目录下。 下面,我们要执行这个do文件,就在Stata命令窗口输入如下的命令: do examp
tab region
此外,对于交互方式的命令,注释只可采取第一种方式,即在句首加
上“*”。
6 宏 宏是Stata程序的变量,它用一个字符串(宏的名称)来代表另一个字
符串(宏的内容)。宏分为局部宏(local macro)和全局宏(global macro)。局部宏只属于其所定义的程序,不能从其他程序中调用。 而全局宏一旦被定义,就会留在内存,且可以被其他程序使用。 局部宏的名称最多有31个字符,它的定义方式为: local 宏的名称 宏的内容 或: local 宏的名称=表达式 例如,我们输入命令: local nv “this is a newvar” 就定义了一个叫做nv的局部宏,其内容为this is a newvar。如果我们 要引用这个局部宏的内容,其格式为:`nv’。注意,左边的引号为标 准键盘左上角的重音符(数字1左边的键),右边的引号为通常的单引 号(回车键左边的键)。定义完毕之后,如果我们输入: `nv’ 我们就相当于输入了: this is a newvar
5 注释 有时,我们想在命令中加入注释,从而方便以后或他人的阅读。要在
do文件或ado文件中加入注释,可以采取如下几种方式: 1.以“*”来开始一行。这样,该行就会被当做注释。 2.将注释放在“/*”和“*/”之间。该种格式可以置于句中的任何位置。 此外,在行末使用“/*”,并在下一行行首使用“*/”,可以将很长 的命令分成两行。 3.将注释置于双斜线“//”之后。如果双斜线之前有命令,则双斜线与 命令之间至少要有一个空格。 4.将注释置于三斜线“///”之后。如果三斜线之前有命令,斜线与命 令之间也是至少要有一个空格。此外,对于“///”,其下一行的命令 会被认为是前面命令的继续。三斜线也可单独置于行尾,从而将很长 的命令分成几行。
例如,我们可以输入如下的命令来显示这个宏的内容: display “`nv’” 注意,这里,宏`nv’外面的双引号必不可少,因为如果不加引号,我
们相当于输入了如下的命令: display this is a newvar Stata会显示错误提示:this not found。只有加上外面的双引号,才表 示我们要显示一个字符串。否则,Stata会将其当做变量来处理。当然, 如果宏的内容确实为存在的变量名,而我们要显示这个变量,就不必 加上双引号。
实验操作指导 1 Do文件 do文件是一种文本文件,其扩展名为“.do”。要创建一个do文件,
可以通过菜单栏中Window的下拉选项Do-file Editor来打开Do文件编 辑器,也可以直接点击工具栏的图标 。而要执行一个do文件,可以 键入以下命令: do filename 这里,filename指相应的do文件的文件名。但需要注意的一点是,这 个filename.do文件需要放在当前目录下,只有这样,才可以不写文件 的路径;否则,需要在文件名前写出完整路径(而如果路径中有中文 字符,一定要将全部路径和文件名置于英文双引号之间)。 要查看当前目录,我们可输入命令: cd 当然,我们也可以先将当前目录更改到我们偏好的一个文件夹下,然 后再将do文件存放其中。例如,如下命令可以将当前目录更改到d盘 data文件夹下: cd “D:\data” 这里,需要注意的一点是,cd命令要求其后的文件夹原来就存在。
实验内容及数据来源 本实验中,我们会讲解do文件的创建和执行方法、定
界符的修改、程序和do文件的联系、ado文件的创建 和保存、注释的添加方法、版本的声明、局部宏和全 局宏的定义及引用以及临时变量、临时矩阵和临时文 件的定义和使用等内容。
本实验主要讲解编写程序的一些基本操作,不需要使
用数据文件。
当然,我们也可采取一种更为简洁的方式,即在do文件的最后一行加
上程序名,这样,当键入“do filename”的时候,Stata就会在加载完 程序后就执行程序。但需要注意的是,程序一旦被定义,Stata就不允 许对其重新定义。这样,如果我们随后又输入一遍“do filename”, Stata就会显示错误提示。要解决这个问题,我们可以在do文件的第一 行输入这样的命令: program drop 程序名
3 Ado文件 如果想自动加载并运行程序内容,我们可以将程序保存到ado
(automatically do)文件中(同样是利用do文件编辑器,保存时选择 扩展名为ado),以后,直接输入程序名就可以使用该程序。但需要 注意的是,ado文件的文件名和其中的程序名必须一致。 值得注意的是,如果在Stata运行的过程中改变了某个ado文件的命令 语句,则在重新运行这个ado文件前,要先将Stata内存中的ado文件清 除。即,输入命令: discard 否则,Stata还是会运行原来的那个ado文件。 个人编写的ado文件通常被存放在两个地方,一个是当前目录,另一 个是个人ado目录。个人ado目录通常位于“C:\ado\personal”,要查 看其具体位置,可输入命令: personal 而要查看或改变当前目录,可使用命令“cd”。