1702646040
1702646041
用Stata进行分析的一些建议
1702646042
1702646043
本附录提供了一些简单建议,它们会使你们在用Stata进行分析的时候更加容易和有效率。此外,附录列出了一些容易被忽略但特别实用的命令。
1702646044
1702646045
用-do-文件做所有工作
1702646046
1702646047
你们应该从一开始就养成通过创建命令文件来进行所有分析的习惯,Stata术语称之为“-do-文件”。这样做主要有两个优点:在正确分析之前很容易重复尝试不同的分析,并且容易记录你们的分析。而对你们的分析保留一份日志却并不总是必要的(当然,尽管你们必须创建一个-log-文件来保存你们的输出结果),因为日志完整地记录了所有输出错误和错误步骤,这使你们很难一下子找到分析正确的路径,并且还会重复记录你们的分析结果。这里有一个例子(是我曾创建的-do-文件的一部分),你们可以用作一个标准格式的参考。我创建的每个-do-文件的开头部分都用这组命令。文件中的命令用英文字体Courier New来表示,在方括号中的内容是我的评论。
1702646048
1702646049
capture log close
1702646050
1702646051
[此命令要求关闭已打开的任何-log-文件(见下一条命令)。在一个命令前加-capture-非常有用,因为它指示Stata在遇到“错误”时不要停止——例如,如果它没有发现一个关闭的-log-文件,它也不会停止。]
1702646052
1702646053
log using class.log,replace
1702646054
1702646055
[此命令告诉Stata保存命令文件和这些命令得出的结果——被称为“-log-文件”——并且覆盖以前的任何-log-文件。命令的-replace-部分很关键,因为当你们执行-do-文件、更正错误并试图再执行时,Stata将会提示已有一个-log-文件存在。]
1702646056
1702646057
#delimit;
1702646058
1702646059
[此命令告诉Stata在碰到“;”时结束所有的后续命令。我发现这是处理长命令行最有效的方法。Stata的默认值将回车键(结束一行的计算机命令)视作命令的结束,这意味着命令被限定在一行,除非回车键是起到“注释”作用(见下面)。当然,行有可能很长,超出一页的宽度,这会使你们的文件很难读。]
1702646060
1702646061
version 10.0;
1702646062
1702646063
[此命令告诉Stata文件是由哪个Stata版本创建的。如果版本可以识别,新版本的Stata总是能运行旧版本的-do-文件。]
1702646064
1702646065
set more 1;
1702646066
1702646067
[此命令告诉Stata在输出结果的每一结束页处不要停止。当执行一个-do-文件时,你们会希望程序在执行时不要停止。检查输出结果的方法是阅读-log-文件。]
1702646068
1702646069
clear;
1702646070
1702646071
[此命令清除以前执行过的任何程序或任何其他Stata命令留下的数据。Stata的优点是会提醒你们注意因疏忽而破坏已经创建的数据。但事实是:Stata的提醒意味着你们需要一种解除此警告的方法,这正是此命令的功用。]
1702646072
1702646073
program drop_all;
1702646074
1702646075
[此命令删除任何已经存在的以前在执行-do-文件时创建的程序。如果你在-do-文件中包含了任何程序,不执行此命令会导致Stata停止执行命令。]
1702646076
1702646077
set mem 100m;
1702646078
1702646079
[此命令让Stata保留100MB的内存。如果内存足够大,Stata将所有数据读进内存并对这些数据进行分析,这也是为什么Stata运行如此快的原因。但如果你们预留的内存太小,Stata将会提醒你们:空间太小,不能增加变量或样本。]
1702646080
1702646081
*CLASS.DO(DJT initiated 5/19/99,last revised 2/4/08);
1702646082
1702646083
[因为我常与其他人合作,所以我总是在-do-文件中标明作者、创建的日期,以及修改的最后日期。在区分同一-do-文件的不同版本时,这是很有用的。出现某种情况有可能是因为我的合作者和我本人修改过同一个文件,或因为我修改了办公室计算机里存的文件,但忘了更新家里的计算机存的文件,等等。注意,命令(commands)与注释(comments)是通过一行的最开始是否带星号来区分的。]
1702646084
1702646085
*This -do- file creates computations for a paper on literacy in China.;
1702646086
1702646087
[我总是加一条对-do-文件所进行的分析的描述。因为我写一篇文章经常需要很长时间,详细描述分析内容对唤起记忆和帮助自己找到正确的文件是非常有用的。]
1702646088
1702646089
use d:\china\survey\data\china07.dta;
[
上一页 ]
[ :1.70264604e+09 ]
[
下一页 ]