如何合并stata中的数据



我正在学习stata,并试图理解合并。有人能给我解释一下不同类型合并的区别吗?(1:1, 1:m, m:1, m:m)?

如果Stata手册不清楚,这里有一个快速概述。

首先,澄清术语是很重要的。

一个merge基本上连接两个数据集(Stata称之为observations)的行基于一个指定的变量或变量列表,称为key变量。您必须从内存中已经存在的一个数据集开始(Stata将其称为master数据集),并将另一个数据集merge到它(另一个数据集称为using数据集)。你剩下的是一个单一的数据集,其中包含master中的所有变量,以及master中不存在的using中的任何变量。它还生成一个名为_merge的新变量,指示master中的行是否不在using中,反之亦然。合并的数据集(除非另有指定)将包含masterusing中的所有行,而不管两者之间的关键变量是否匹配。

"唯一标识符"的概念很重要。如果一个变量(或变量组合)在每行中都有不同的值,则它唯一地标识行。这对于1:1,1:1:m等细节非常重要。

  • 1:1表示键变量在两个数据集中提供唯一标识符。您将在内存中留下来自两个数据集的所有行。
  • 1:m表示master数据集中的key变量唯一标识行,但using数据集中的key变量不唯一标识行。你仍然会留下来自两个数据集的所有行,但是如果一个关键变量在使用数据集中有重复的观测值,master数据集将获得重复值以匹配它们。
  • m:1与1:m相反。master数据集中的key变量不能唯一地标识行,但using数据集中的key变量可以。
  • m:m有点奇怪。key变量不能唯一地标识任何一个数据集中的行,所以你将从两边留下重复的行。

的例子:

** make a dataset and save as a tempfile called `b'. Note that k uniquely identifies rows
set obs 3 
gen k = _n
gen b = "b"
list
   +-------+
   | k   b |
   |-------|
1. | 1   b |
2. | 2   b |
3. | 3   b |
   +-------+
tempfile b
save `b'
** make another dataset and merge `b' to it. Note that k uniquely identifies rows
set obs 3 
gen k = _n
gen a = "a"
list
   +-------+
   | k   a |
   |-------|
1. | 1   a |
2. | 2   a |
3. | 3   a |
   +-------+
merge 1:1 k using `b'
list
   +-------------------------+
   | k   a   b        _merge |
   |-------------------------|
1. | 1   a   b   matched (3) |
2. | 2   a   b   matched (3) |
3. | 3   a   b   matched (3) |
   +-------------------------+

** make another dataset and merge `b' to it. Note that k does not uniquely identify rows and that k=2 and k=3 do not exist in the master dataset
clear
set obs 3 
gen k = 1
gen a = "a"
list
   +-------+
   | k   a |
   |-------|
1. | 1   a |
2. | 1   a |
3. | 1   a |
   +-------+
merge m:1 k using `b'
list
   +----------------------------+
   | k   a   b           _merge |
   |----------------------------|
1. | 1   a   b      matched (3) |
2. | 1   a   b      matched (3) |
3. | 1   a   b      matched (3) |
4. | 2       b   using only (2) |
5. | 3       b   using only (2) |
   +----------------------------+

最新更新