append 后如何删除_如何在STATA中合并数据文件呢?

作者:江小白
邮箱:jieresearch@163.com

我们在使用stata进行数据分析时,可能涉及多个数据文档的合并操作或者同时使用不同数据集中的多个变量,这都需要我们进行文档间不同变量的归并。
例如,我们需要使用CFPS(中国家庭追踪调查)数据库进行实证分析,而申请拿到的原始数据中包含成人数据库,儿童数据库,家庭关系库等多个数据集,我们需要的变量分散在这些数据集中,此时就需要将不同数据库中的不同变量放到一起;再譬如我们需要CFPS多期的调查数据构建多期面板,这又需要我们把多期的数据合并到一起...

在stata中就为我们提供了mergeappend 等命令以实现多个数据文件的「横向合并」「纵向合并」


「merge」 命令

mergeappend 都是stata自带的数据处理命令,为了了解命令的使用,我们可以使用help 命令

help merge

通过帮助命令我们可以观察到如下语句格式

通过关键变量进行1对1合并
merge  1:1  varlist  using  filename

通过关键变量进行多对1合并
merge m:1 varlist using filename

通过关键变量进行1对多合并
merge 1:m varlist using filename

通过关键变量进行多对多合并
merge m:m varlist using filename

通过观测数进行1对1合并
merge 1:1 _n using filename

利用帮助文件的示例演示1对1的数据合并如何操作

webuse autosizelistwebuse autoexpenselist/*Perform 1:1 match merge*/webuse autosizemerge 1:1 make using http://www.stata-press.com/data/r15/autoexpenselist

通过list命令,我们可以观察到 autosize 和 autoexpense 的数据详情

autosize 数据

makeweightlength
Toyota   Celica2,410174
BMW 320i2,650177
Cad. Seville4,290204
Pont Grand Prix3,210201
Datsun 2102,020165
Plym. Arrow3,260170

autoexpense 数据

makepricempg
Toyota Celica5,89918
BMW 320i9,73525
Cad. Seville15,90621
Pont. Grand Prix5,22219
Datsun 2104,58935

根据数据中的make变量,进行 1对1 的合并,在merge合并中我们需要定义 master 数据集和 using 数据集,相当于我们对于数据集定义主从关系,我们将 autosize 数据集作为master,然后 using autoexpense 数据集1对1合并,那么可以得到如下合并结果:

27b2bb78ed0c97c474bdbad4fd9fbca2.png

使用 merge 后,stata会给出数据 match 的结果,如下表:这个结果告诉我们,两个数据集中有5个观测变量成功 match(用_merge==3表示这类变量),有1个观测变量 not matched,而且这个匹配失败的变量来自master 数据集 (用_merge==1表示这类变量)。

「数据match结果」

Result# of obs.
not matched1
from master1  (_merge==1)
from using0  (_merge==2)
matched5  (_merge==3)

在数据处理过程中可以在匹配后删除我们不需要的not matched 的样本,例如:drop if merge==1可以直接删除master数据集中未匹配的样本。


此外,merge 命令还提供了诸多的选择项(option)内容,比较常用的有:

  1. keepusing(varlist):保留数据集中特定变量
  2. generate(newvar):使用新的变量名称标记merge结果,默认为merge
  3. nogenerate :不生成merge变量
  4. update: 用using数据集中的值替代master数据集中相同变量的缺失值
  5. replace:用using数据集中的值替代master数据集中相同变量的非缺失值
  6. force:允许字符型和数值型变量之间不匹配

示例中还提供了1:m,m:1,以及多个选择项使用的例子(我们一般很少用到m:m合并),其操作与解读与1:1的合并类似

   /*进行 1:1  merge, 并保留匹配变量*/webuse autosize, clearmerge 1:1 make using http://www.stata-press.com/data/r15/autoexpense, ///keep(match) nogenlist/* Setup */webuse dollars, clearlistwebuse sforcelist/*与 sforce 进行 m:1  merge */merge m:1 region using http://www.stata-press.com/data/r15/dollarslist/*Setup*/webuse overlap1, clearlist, sepby(id)webuse overlap2list/*进行 1:m  merge, 带update replace选项*/webuse overlap2, clearmerge 1:m id using http://www.stata-press.com/data/r15/overlap1 ///    update replacelist  /*按样本进行顺序合并*/webuse sforce, clearlistmerge 1:1 _n using http://www.stata-press.com/data/r15/dollarslist


「append」 命令

如果需要实现数据的纵向合并,我们使用append命令

help append

append的语句格式如下

append using filename [filename ...] [, options]

使用示例数据演示合并

/*Setup*/webuse evenlistwebuse oddlistappend using http://www.stata-press.com/data/r15/evenlist

even数据集

numbereven
612
714
816

odd 数据集

numberodd
11
23
35
47
59

合并结果

numberoddeven
11.
23.
35.
47.
59.
6.12
7.14
8.16

append命令也带有 keep nolabel force等选择项,使用方法与merge大同小异


这些操作可以帮助我们在stata中实现数据的横向与纵向合并。例如在CFPS数据集中,可以根据追踪调查所标记的个人ID(pid)和家庭ID(fid)等变量从相应数据库中提取我们所需的变量进行合并;也可以根据调查年份合并我们所需的面板...

在实际中可以根据数据的结构特点和研究需求选择合适的操作命令,用stata进行数据集的合并你学会了吗?

本文相关的附件可以从https://github.com/czxa/Stata-Chinese-community获取,点击阅读原文即可跳转~

欢迎关注公众号获取更多stata相关推文

a4ce14893fd180d962994188f9bb4229.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 内网怎么安装git环境_linux 安装go环境

官网下载安装包The Go Programming Language​golang.google.cngo1.4.linux-amd64.tar.gz解压:tar -C /usr/local -zxvf go1.4.linux-amd64.tar.gz添加环境变量:export PATH$PATH:/usr/local/go/bin安装完成输入go测试安装成功,写个简单的代码…

cups支持的打印机列表_Win10“Microsoft Print to PDF”虚拟打印机不见了,如何找回?...

MS酋长很早以前在介绍Windows10的新功能时,就提到过《Win10原生支持把文件转换成PDF格式》,该功能实际上是基于“Microsoft Print to PDF”虚拟打印机来实现的。当你点击打印时,在打印机列表中就可以看到“Microsoft Print to PDF”虚拟打印机…

循环队列的进队算法c语言,循环队列的定义,入队算法,出队算法,遍历算法,及其代码实现-Go语言中文社区...

队列 的定义:一种可以是实现“先进先出”的存储结构。数据的进出类似于排队购票。队只允许队尾一端(rear)添加,在另一端队头(front)删除。队有队头(front)和队尾(rear)两个指针。队头front指向第一个元素,队尾rear指向无实际意义的元素&#…

java office文件加水印_文档预览加水印——或可一用的防泄密方式

给文件加水印是常见的一种宣示版权的方式。像Office、WPS都自带加水印功能,能够给文档加上"保密"、"严禁复制"这样的水印。在多可系统中,也有这么一个添加水印的功能。启用该功能后,在使用HTML5预览时,多可系…

android 获取apk资源,android-apk-parser

APK解析库用于读取/解析 packageName。versionName。versionCode信息的简单类,以及已经编译的androidsdk文件中的更多内容。通过解压 AndroidManifest.xml 文件并解码编译好的XML二进制文件来收集这里信息,就可以实现。我一直在用它来实现各种android工件…

apache license 2.0如何使用防止法律纠纷_go语言使用Swaggo详细教程

相信很多程序猿和我一样不喜欢写API文档。写代码多舒服,写文档不仅要花费大量的时间,有时候还不能做到面面具全。但API文档是必不可少的,相信其重要性就不用我说了,一份含糊的文档甚至能让前后端人员打起来。 而今天这篇博客介绍的…

android执行main函数,AndroidStudio执行main方法报错

问题:有时在开发中想直接写一个java文件来测试一些东西,但是AndroidStudio执行的时候会报错。代码信息:public class HelloWorld {public static void main(String[] args) {System.out.println("HelloWorld");}}报错信息12:04:41:…

hive 导出json格式 文件_Hive 系列 之 基本操作合集

下面是本课程概览:(1)hive系列之简介,安装,beeline和hiveserver2(2)hive系列之基本操作(3)hive系列之udf(4)hive系列之二级分区和动态分区&#x…

android开发自定义view倍丝曲线,从0到1Android自定义View(四)贝塞尔曲线

原标题:从0到1Android自定义View(四)贝塞尔曲线2017年安卓巴士全球开发者论坛-上海站作者本文由两点水投稿,博客地址:http://www.apkbus.com/myspaceblog-911082.html前言扯来扯去,前面三篇自定义 View 文章,终于扯完了…

ios kvo 要引入_腾讯社招iOS面试记录

毕业好几年了,上周发送了简历给腾讯,参加了腾讯面试。具体部门这边就不说了。这次面试还是收获到了很多。一面电话面试:面试官主要是针对iOS相关的基础问题。先简单自我介绍一下自己对mrc和arc的理解谈谈对自动释放池的理解自动释放池在mrc和…

html 中加号的表示方法,CSS的+(加号)选择器怎么用

在CSS中“”符号选择器用于选择紧跟在指定元素之后但不在特定元素内部的元素。下面本篇文章就来具体介绍一下,希望对大家有所帮助。“”符号选择器在CSS中“”符号选择器被称为相邻兄弟选择器,用于选取在同一父元素下的,紧跟指定元素之后的另…

华为新系统 鸿蒙,旗舰CPU+鸿蒙OS!华为Mate家族重磅新品来袭

我们常说安卓平板的生态跟苹果iPad有很大差距,不论是应用质量还是原生系统支持,苹果都做的更好一些。可能也是因为这个原因,因此安卓平板,尤其是旗舰级别的平板至今除了三星之外,也就只有华为在做。作为安卓阵营两大厂…

mysql中用来取余数的函数是_MySQL常用函数-单行处理函数-字符串处理函数(更新中...)...

本篇文章用到的数据库表/* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.7.23-log : Database - myemployees ********************************************************************* *//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE*/;/*!40014 SET OLD_UNIQUE_CHECKSUN…

html盒子模型页面居中,【静态页面架构】CSS之盒子模型

CSS架构盒子模型;以内容区(显示文本和图像)内边距(内容区至边距的距离)边距(内容区的边界)外边距(元素的边框之间的距离)1.边距;border属性;简写属性用来设置边距的上(top)右(right)下(bottom)左(left)。宽度,颜色和样式div{width…

最强动画制作人书包_声优访谈丨恋与制作人动画中配声优访谈——夏磊

亲爱的制作人们:距离恋与制作人动画上线还有6天!今天的中配声优访谈嘉宾是在动画中为许墨献声的夏磊老师~固定布局 工具条上设置固定宽高背景可以设置被包含可以完美对齐背景图和文字以及制作自…

codesys com库_CoDeSys官方系统库在线下载,替换国内下载服务器教程

欢迎加入工控分享技术服务社区推荐阅读Codesys学习资料大全Codesys控制器关于CANopen总线的详细应用说明当你软件报以下错误,你可以直接下载,如果下载不成功,可以换个网络试一试,或者进行下面的操作。由于国内网络问题&#xff0c…

centos7恢复mysql数据库_MySQL数据库升级迁移填坑记

原库:*.*.101.73/74 系统环境: Suse 12.4MySQL: 5.7.29新库:*.*.110.46/47系统环境:CentOS7.7 64位MySQL版本: 5.7.30[一、数据库升级迁移场景]因业务侧在*.*.101.73/74 mysql数据库服务器上部署了java应用程序、HadoopHbase数据库等大数据…

so把asp页面生成静态的html,23、asp系列课程--server.URLEncode方法和server.HTMLEncode方法...

作者:杨凡来自:杨凡博客地址:blog.sina.com.cn/aboutshisanserver.URLEncode方法和server.HTMLEncode方法可以对字符串进行编码。我们一个一个的说。server.URLEncode可以对字符串进行URL编码转换,语法格式为:server.u…

下列关于html5表单的多样输入方式,IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1...

原标题:IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1HTML5拥有多个新的表单输入类型,这些新特性提供了更好的输入控制和验证。并不是所有的主浏览器都支持新的input类型,不过我们可以在所有的主浏览器中使用它们,即使不被支持&a…

v7000更换电池步骤_ups电源运行中是否可以更换电池?应如何操作呢

ups电源在日常使用中除了日常维护工作之外,对于使用达到一定年限的时候,内部使用的ups蓄电池就需要更换了,很多人以为ups不间段电源在工作的时候是可以跟换电池。其实,这个具体就需要看ups电源设计的原理,不同厂家设计…