1. 前言
在目前工作中,用stata清洗及分析数据,感觉很顺滑。无奈不少同学因为help文件里的英文望而却步。
带着学习和分享的目的,根据工作经验,给大家整理一些常用以及不太常用但很有用的命令,并对该命令的help文件进行有侧重的详解。
2. 命令及获取
append
:纵向合并数据,系统自带命令
3. 描述
append
:将stata数据集合并到内存中数据的最后。最短可缩写成ap。
4. 语法
*将以filename为名的stata数据合并到内存中的数据
append using filename [filename ...] [, options]
- [,]:中括号里的为额外选项命令,按需求添加,而添加选项记得加英文逗号,
- filename(文件名):如果语法中只有文件名,则默认文件格式为.dta;如果文件名中有空格,记得用双引号""将该目录名字括起来。
5. 选项
generate(newvar)
:添加该选项,指定新生成变量的变量名为newvar,该变量名用于标记数据个案来源,其中,该变量为0,表示数据个案来源于主(master)数据,即未合并前内存中的数据;该变量为1,表示数据个案来源于第1个调用数据,即using后的第1个数据集;该变量为2,表示数据个案来源于第2个调用数据,即using后的第2个数据集,依次类推。keep(varlist)
:添加该选项,指定调用数据的中某些变量被保留。如果不添加该选项,则调用数据中的所有变量被保留。
- 这里的varlist与一般的varlist的不同:
- 这里的不可以缩写变量名,例如,变量名为displacement时,需要写displacement而不是displ,但是可以用displ~表达。
- 这里的不可以指定变量范围,例如,age-income,否则会报错。
nolabel
:添加该选项,使得调用数据中的值标签不会覆盖主数据中的值标签。即使不添加该选项,这种情况也不会发生。nonotes
:添加该选项,使得调用数据中的注释(notes)不会被合并进去。默认是,调用数据的主数据中不存在的注释会被合并到主数据中。force
:当主数据和调用数据存在相同变量,但是变量在两个数据集中的类型不同(一个数值,一个是字符串),不添加该选项时,结果会报错;当添加该选项时,相同变量可以整合成1个变量,但调用数据中的数据会被设为缺失,同时出现警告信息。
6. 举例
*调用数据even
webuse even
*显示数据even情况
list
*调用数据odd
webuse odd
*显示数据odd情况
list
*将数据even合并进数据odd
append using http://www.stata-press.com/data/r15/even
*显示合并后数据情况
list
*调用系统数据auto,同时清除内存数据
sysuse auto, clear
*保留数据auto中变量foreign等于0的个案
keep if foreign == 0
*将数据另存为domestic.dta
save domestic
*调用系统数据auto,同时清除内存数据
sysuse auto, clear
*保留数据auto中变量foreign等于1的个案
keep if foreign == 1
*保留数据auto中make price mpg rep78 foreign这几个变量
keep make price mpg rep78 foreign
*只将数据domestic中make price mpg rep78 foreign这几个变量合并进来
append using domestic, keep(make price mpg rep78 foreign)
*显示合并后数据情况
list
*调用系统数据citytemp,同时清除内存数据
sysuse citytemp, clear
*保留数据citytemp中变量region等于4的个案
keep if region == 4
*将数据另存为west.dta
save west
*调用系统数据citytemp,同时清除内存数据
sysuse citytemp, clear
*保留数据citytemp中变量region等于3的个案
keep if region == 3
*将数据另存为south.dta
save south
*调用系统数据citytemp,同时清除内存数据
sysuse citytemp, clear
*保留数据citytemp中变量region等于1的个案
keep if region == 1
*将数据west,数据south合并进来,同时,生成新的变量filenum,并且,不带数据west和数据south的值标签
append using west south, generate(filenum) nolabel
7. 菜单
Data > Combine datasets > Append datasets
8. 存储的结果
无
9. 补充
- 无