我有两个数据集。
包含我的大部分数据:
ISIN Name Year TotalAssets Turnover RoA Employees
1. Nr1 Bank1 2005 30.000 1 0,5 300
2. Nr1 Bank1 2006 31.000 1 0,3 300
3. Nr1 Bank1 2007 28.000 1 0,3 280
4. Nr2 Bank2 2005 150.000 0 0,8 2000
5. Nr2 Bank2 2006 - 0 - 2200
6. Nr2 Bank2 2007 - 0 - 2200
7. Nr3 Bank3 2005 20.000 1 0,7 275
另一个包含第一个数据集中缺少的信息:
ISIN Name Year TotalAssets RoA
1. Nr2 Bank2 2005 150.000 0,8
2. Nr2 Bank2 2006 180.000 1,3
3. Nr2 Bank2 2007 170.000 0,7
4. Nr2 Bank2 2008 150.000 0,4
当我使用以下方法组合这些数据集时:
merge 1:1 ISIN Year using "Dataset2"
出于某种原因,只有master only (1)
和using only (2)
匹配变量TotalAssets
和RoA
,而matched(3)
则为TotalAssets
的每个案例都提供缺失的数据{1}}和RoA
变量。
合并后的数据集如下所示:
ISIN Name Year TotalAssets Turnover RoA Employees _merge
1. Nr1 Bank1 2005 30.000 1 0,5 300 master only (1)
2. Nr1 Bank1 2006 31.000 1 0,3 300 master only (1)
3. Nr1 Bank1 2007 28.000 1 0,3 280 master only (1)
4. Nr2 Bank2 2005 150.000 0 0,8 2000 master only (1)
5. Nr2 Bank2 2006 - 0 - 2200 matched(3)
6. Nr2 Bank2 2007 - 0 - 2200 matched(3)
7. Nr2 Bank2 2008 150.000 - 0,4 - using only (2)
8. Nr3 Bank3 2005 20.000 1 0,7 275 master only (1)
但是,matched
不会显示其应该merge
的变量的任何数据。
我做错了什么或者我会怎样以更好的方式去做?
答案 0 :(得分:1)
查看help merge
的选项,尤其是update
和replace
。在您的特定情况下,看起来update
选项就足够了(_merge==4
)。 Stata会将master
数据集视为不可侵犯,除非您明确说明如何在using
数据集中处理同名变量。
答案 1 :(得分:1)
在这种特殊情况下,您需要的是update
的{{1}}选项,而不是merge
。
使用您的示例:
replace
这给了你:
clear
input str10(ISIN) str10(Name) Year TotalAssets Turnover RoA Employees
Nr1 Bank1 2005 30000 1 0.5 300
Nr1 Bank1 2006 31000 1 0.3 300
Nr1 Bank1 2007 28000 1 0.3 280
Nr2 Bank2 2005 150000 0 0.8 2000
Nr2 Bank2 2006 . 0 . 2200
Nr2 Bank2 2007 . 0 . 2200
Nr3 Bank3 2005 20000 1 0.7 275
end
save data1, replace
clear
input str10(ISIN) str10(Name) Year TotalAssets RoA
Nr2 Bank2 2005 150000 0.8
Nr2 Bank2 2006 180000 1.3
Nr2 Bank2 2007 170000 0.7
Nr2 Bank2 2008 150000 0.4
end
save data2, replace
use data1,clear
merge 1:1 ISIN Year using data2, update
观察7中有两个缺失值,因为第二个数据集中不存在变量list
+----------------------------------------------------------------------------------+
| ISIN Name Year TotalA~s Turnover RoA Employ~s _merge |
|----------------------------------------------------------------------------------|
1. | Nr1 Bank1 2005 30000 1 .5 300 master only (1) |
2. | Nr1 Bank1 2006 31000 1 .3 300 master only (1) |
3. | Nr1 Bank1 2007 28000 1 .3 280 master only (1) |
4. | Nr2 Bank2 2005 150000 0 .8 2000 matched (3) |
5. | Nr2 Bank2 2006 180000 0 1.3 2200 missing updated (4) |
|----------------------------------------------------------------------------------|
6. | Nr2 Bank2 2007 170000 0 .7 2200 missing updated (4) |
7. | Nr2 Bank2 2008 150000 . .4 . using only (2) |
8. | Nr3 Bank3 2005 20000 1 .7 275 master only (1) |
+----------------------------------------------------------------------------------+
和Turnover
。