数据集的纵向合并——Stata 软件

在临床研究,尤其是多中心的临床研究中,不同的医院用同一个问卷或电子病历表来收集信息(例如,A医院完成1500份,B医院完成1000份,C医院完成1200份),最后需要将来自不同医院的数据集进行合并,最终形成总数据集,这样的合并可以增加观测的记录数,属于纵向合并。如图1和图2所示

图1 纵向合并概念图

图2 纵向合并示意图

纵向合并的stata命令为append using,对应的stata菜单栏为data—combinedataset—append datasets.

下面我们用一个简单的例子来说明如何用stata软件合并数据库,希望通过这个简单的例子让大家知道stata中的append using命令。为了更好的理解后面的内容,先介绍几个概念:主数据集、从数据集、纵向合并。主数据集(master dataset)指的是当前在计算机内存中的数据;从数据集(using dataset)指的是将被合并到主数据集的数据集;纵向合并指的是增加记录(即样本量)。

举例说明(我们以stata自带的数据库来说明):

第一步,将auto数据集拆分为domestic数据集和foreign数据集。具体的语法为:

. sysuseauto, clear(打开系统自带的auto数据集)

. keep if foreign == 0(保留foreign=0的样本)

. keep make priceforeign(保留make price foreign这三个变量)

. save domestic(将其保存为domestic数据集)

. sysuseauto, clear(打开系统自带的auto数据集

. keep if foreign==1(保留foreign=1的样本)

. save foreign(将其保存为foreign数据集)

第二步:打开domestic数据集作为主数据集,将foreign数据集作为从数据集追加。具体的语法:

. use domestic, clear

. append using foreign

在纵向合并中我们需要注意:

1.数据集之间内容相同的变量的变量名要保持一致,如果不一致,stata无法知道如何将相似的变量追加在一起。所以需要在合并之前,逐个查看数据集的数据结构,确保数据集之间内容相同的变量的变量名一致。

2.变量的编码需要保持一致。若编码不一致(如主数据集的性别gender变量取值为1和2,从数据集的性别gender变量取值为0和1),stata并不报错,所以需要在合并以前,逐一查看数据集的变量编码(一般情况下可以通过变量管理器或者codebook命令),确保数据集之间相同变量的变量编码一致。如果不一致,可以用recode命令将其保持一致。合并后使用tabulate命令确认一下。

3.在进行纵向合并时,数据集无需针对变量排序,因为纵向合并的只是两个数据集对接在一起。通常情况下,这些数据集往往具有类似的变量结构,只是内容不同,也可以纵向追加,没有的变量会通过缺失值来代替。

参考:廉启国编著的《Stata数据统计分析教程》

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181204B0EIA500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券