常用到的STATA命令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
年0606月月0101日,日,日,200820082008年第年第年第44期,总第期,总第6
6期编者按:Stata 的数据管理能力非常powerful ,而我们EpiMan 论坛上有很多优秀的帖子,我们会不定期对其进行整理,以期使得大家可以更好地掌握Stata 软件,提高工作和学习的效率和乐趣。毕竟,Stata 是一款巨有特色的统计软件包,推荐使用。
我常用到的Stata命令
by 无为而治的西瓜与西瓜老死不相往来
Special Issue
Fundamental of Data Manipulation
Using Stata
EpiMan Cluster特刊:我常用到的Stata命令
Special Issue
我常用到的Stata命令
文章作者:无为而治的西瓜与西瓜老死不相往来
本期主编:epiman
本期审校:epiman
本期排版:epiman
2008年06月01日
2008年第4期
总第6期
邮箱:epiman@ 网址:
目录
第一讲,do文件的穿靴戴帽
第二讲,原始数据→分析数据
第三讲,批量生成虚拟变量
第四讲,改变数据结构
第五讲,复杂数据处理技巧--迂回 第六讲,本期声明和好汉招募
第一讲,help和search的区别以及do文件的穿靴戴帽第一讲,help和search的区别以及do文件的穿靴戴帽
作者:无为而治的西瓜与西瓜老死不相往来@
最重要的两个命令莫过于help和search了。即使是经常使用stata的人也很难,也没必要记住常用命令的每一个细节,更不用说那些不常用到的了。所以,在遇到困难又没有免费专家咨询时,使用stata自带的帮助文件就是最佳选择。stata的帮助文件十分详尽,面面俱到,这既是好处也是麻烦。当你看到长长的帮助文件时,是不是对迅速找到相关信息感到没有信心?闲话不说了。help和search都是查找帮助文件的命令,它们之间的区别在于help用于查找精确的命令名,而search是模糊查找。如果你知道某个命令的名字,并且想知道它的具体使用方法,只须在stata的命令行窗口中输入help空格加上这个名字。回车后结果屏幕上就会显示出这个命令的帮助文件的全部内容。如果你想知道在stata下做某个估计或某种计算,而不知道具体该如何实现,就需要用search命令了。使用的方法和help类似,只须把准确的命令名改成某个关键词。回车后结果窗口会给出所有和这个关键词相关的帮助文件名和链接列表。在列表中寻找最相关的内容,点击后在弹出的查看窗口中会给出相关的帮助文件。耐心寻找,反复实验,通常可以较快地找到你需要的内容。
下面该正式处理数据了。我的处理数据经验是最好能用stata的do文件编辑器记下你做过的工作。因为很少有一项实证研究能够一次完成,所以,当你下次继续工作时。能够重复前面的工作是非常重要的。有时因为一些细小的不同,你会发现无法复制原先的结果了。这时如果有记录下以往工作的do文件将把你从地狱带到天堂。因为你不必一遍又一遍地试图重现做过的工作。在stata窗口上部的工具栏中有个孤立的小按钮,把鼠标放上去会出现“bring do-file editor to front”,点击它就会出现do文件编辑器。
为了使do文件能够顺利工作,一般需要编辑do文件的“头”和“尾”。这里给出我使用的“头”和“尾”。
capture clear(清空内存中的数据)
capture log close(关闭所有打开的日志文件)
set mem128m(设置用于stata使用的内存容量)
set more off(关闭more选项。如果打开该选项,那么结果分屏输出,即一次只输出一屏结果。你按空格键后再输出下一屏,直到全部输完。如果关闭则中间不停,一次全部输出。)set matsiz e4000(设置矩阵的最大阶数。我用的是不是太大了?)
cd D:(进入数据所在的盘符和文件夹。和dos的命令行很相似。)
log using(文件名).log,replace(打开日志文件,并更新。日志文件将记录下所有文件运行后给出的结果,如果你修改了文件内容,replace选项可以将其更新为最近运行的结果。)use(文件名),clear(打开数据文件。)
(文件内容)
log close(关闭日志文件。)
exit,clear(退出并清空内存中的数据。)
这个do文件的“头尾”并非我的发明,而是从沈明高老师那里学到的。版权归沈明高老师。
第二讲,数据管理基础:原始数据第二讲,数据管理基础:原始数据→→分析数据
作者:无为而治的西瓜与西瓜老死不相往来@
实证工作中往往接触的是原始数据。这些数据没有经过整理,有一些错漏和不统一的地方。比如,对某个变量的缺失观察值,有时会用点,有时会用-9,-99等来表示。回归时如果使用这些观察,往往得出非常错误的结果。还有,在不同的数据文件中,相同变量有时使用的变量名不同,会给合并数据造成麻烦。因此,拿到原始数据后,往往需要根据需要重新生成新的数据库,并且只使用这个新库处理数据。这部分工作不难,但是非常基础。因为如果在这里你不够小心,后面的事情往往会白做。
假设你清楚地知道所需的变量,现在要做的是检查数据、生成必要的数据并形成数据库供将来使用。检查数据的重要命令包括codebook ,su ,ta ,des 和list 。其中,codebook 提供的信息最全面,缺点是不能使用if 条件限制范围,所以,有时还要用别的帮帮忙。su 空格加变量名报告相应变量的非缺失的观察个数,均值,标准差,最小值和最大值。ta 空格后面加一个(或两个)变量名是报告某个变量(或两个变量二维)的取值(不含缺失值)的频数,比率和按大小排列的累积比率。des 后面可以加任意个变量名,只要数据中有。它报告变量的存储的类型,显示的格式和标签。标签中一般记录这个变量的定义和单位。list 报告变量的观察值,可以用if 或in 来限制范围。所有这些命令都可以后面不加任何变量名,报告的结果是正在使用的数据库中的所有变量的相应信息。说起来苍白无力,打开stata 亲自实验一下吧。
顺带说点儿题外话。除了codebook 之外,上述统计类的命令都属于r 族命令(又称一般命令)。执行后都可以使用return list 报告储存在r ()中的统计结果。最典型的r 族命令当属summariz e 。它会把样本量、均值、标准差、方差、最小值、最大值、总和等统计信息储存起来。你在执行su 之后,只需敲入return list 就可以得到所有这些信息。其实,和一般命令的return 命令类似,估计命令(又称e 族命令)也有ereturn 命令,具有报告,储存信息的功能。在更复杂的编程中,比如对回归分解,计算一些程序中无法直接计算的统计量,这些功能更是必不可少。
检查数据时,先用codebook 看一下它的值域和单位。如果有-9,-99这样的取值,查一下问卷中对缺失值的记录方法。确定它们是缺失值后,改为用点记录。命令是replace (变量名)=.if (变量名)==-9。再看一下用点记录的缺失值有多少,作为选用变量的一个依据。
得到可用的数据后,我会给没有标签的变量加上注解。或者统一标签;或者统一变量的命名规则。更改变量名的命令是ren (原变量名)空格(新变量名)。定义标签的命令是label var (变量名)空格”(标签内容)”。整齐划一的变量名有助于记忆,简明的标签有助于明确变量的单位等信息。
如果你需要使用通过原始变量派生出的新变量,那么就需要了解gen ,egen 和replace 这三个命令。gen 和replace 常常在一起使用。它们的基本语法是gen (或replace)空格(变量名)=(表达式)。二者的不同之处在于gen 是生成新变量,replace 是重新定义旧变量。第二讲,数据管理基础:原始数据第二讲,数据管理基础:原始数据→→分析数据