stata小小白

stata命令详解-append

2020-01-27  本文已影响0人  Hobbit的理查德

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的不同:
      1. 这里的不可以缩写变量名,例如,变量名为displacement时,需要写displacement而不是displ,但是可以用displ~表达。
      2. 这里的不可以指定变量范围,例如,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
even和odd数据.png odd和even数据合并后.png
*调用系统数据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
数据domestic.png 数据foreign.png foreign和domestic数据合并后.png
*调用系统数据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
数据west.png 数据south.png 三个数据合并后.png

7. 菜单

Data > Combine datasets > Append datasets

8. 存储的结果

9. 补充

上一篇下一篇

猜你喜欢

热点阅读