在Stata中,合并数据通常使用`merge`命令。以下是合并数据的基本步骤和注意事项:
数据排序
在进行合并之前,必须确保两个数据集都根据关键变量进行排序。
除了关键变量外,其他变量的名称也不能相同,否则会导致合并失败或结果不准确。
合并类型
纵向合并(Vertical merge):将两个数据集的样本加总在一起,样本数量增加,但变量数量不变。
横向合并(Horizontal merge):将两个数据集的变量加总在一起,样本数量不变,但变量数量增加。
交叉合并(Cross merge):将一个数据集的个案与另一个数据集的个案交叉搭配。
Stata命令
使用`merge`命令进行横向合并时,菜单操作路径为:`Data` -> `Combine datasets` -> `Merge two datasets`。
命令的基本语法为:`merge [options] variable(s) using [file]`,其中`variable(s)`是要合并的变量,`using [file]`是指定要合并的数据文件。
示例
1对1合并:两个数据集中每个`id`只出现一次,合并时以`id`作为匹配变量。
m对1合并:一个数据集中的多个`id`与另一个数据集中的一个`id`匹配。
删除不匹配部分
合并后,可以使用`keep if _merge == 3`来保留匹配的数据行。
使用`drop _merge`来删除不匹配的数据行。
具体操作示例
1对1合并
假设我们有两个数据集`A.dta`和`B1.dta`,它们都有一个共同的关键变量`id`,我们可以这样进行1对1合并:
1. 导入数据:
```stata
use A.dta, clear
use B1.dta, clear
```
2. 进行1对1合并:
```stata
merge 1:1 id using B1.dta
```
3. 删除不匹配的部分:
```stata
keep if _merge == 3
drop _merge
```
m对1合并
假设有两个数据集`A.dta`和`B2.dta`,`A.dta`中有多个`id`,而`B2.dta`中每个`id`只出现一次,我们可以这样进行m对1合并:
1. 导入数据:
```stata
use A.dta, clear
use B2.dta, clear
```
2. 进行m对1合并:
```stata
merge 1:1 id using B2.dta
```
3. 删除不匹配的部分:
```stata
keep if _merge == 3
drop _merge
```
通过以上步骤和示例,你可以在Stata中有效地进行数据合并操作。