下面小编就用例子来具体讲解如何使用joinby来实现两个数据集之间的成对合并
1、例子一
(1)首先生成两个dta文件
clear
input id str3 v1
1 "a"
1 "b"
1 "c"
1 "d"
1 "e"
end
save 1.dta, replace
clear
input id str3 v2
1 "d"
1 "e"
1 "f"
end
save 2.dta, replace
(2)合并
use 1.dta, clear
joinby id using 2.dta
合并结果如下:
看到这里小伙伴们是不是觉得很简单,只需要一个简单的小命令就可以实现很强大的功能,感兴趣的小伙伴可以赶紧试起来哦。接着小编会用另外一个例子介绍joinby的几个选项的具体用法,话不多说这就上例子啦!!
2、例子二
(1)首先生成三个dta文件
clear
input str6 name English
"洋洋" .
"小贝" 92
"悦悦" 88
"小明" 60
"宝宝" 96
"小原" 99
end
save joinby1.dta, replace
clear
input str6 name English
"洋洋" 97
"小贝" .
"悦悦" 95
"小王" 98
"宝宝" 96
"小原" 99
end
save joinby2.dta, replace
clear
input str6 name Chinese
"静静" 96
"文文" 90
"小华" 89
end
save joinby3.dta, replace
(2)
use joinby1.dta, clear
joinby name using joinby2.dta
从运行结果可以看到,当
master
数据集与
using
数据集有相同的变量时(在这里是
name
),即数据集中的观测值可以相互匹配时,只保留匹配成功的数据,并且在默认情况下保留master数据集中的值。
(3)
use joinby1.dta, clear
joinby name using joinby2.dta, update
从运行结果可以看到,当使用
update
这个选项时,
master
数据集中的缺失值被using数据集中的非缺失值覆盖更新。
(4)
use joinby1.dta, clear
joinby name using joinby2.dta, update replace
当使用
update replace
这个选项时,当
master
数据集中含有与
using
数据集有冲突的非缺失值时,合并后using数据集中的数据会对其进行覆盖。
(5)
use joinby2.dta, clear
joinby name using joinby3.dta, unmatched(both) _merge(_merge)
//
_merge()只能与unmatched()一起使用
使用
unmatched(both)
这个选项,保留了来自
master
数据集和
using
数据集的所有匹配失败的观测值,并且制定_
merge
选项可以显示合并后观测值的来源。
到这里,所有关于joinby命令的选项小编已经介绍完毕,想要灵活使用,还需要私下多多练习哦。