我有一个公司小组(id,year)。每个公司也属于一个特定的国家。现在我想按国家添加 GDP 时间序列。
目标是,例如,美国的每家公司都被分配了当年美国的 GDP 等。
谁能告诉我该怎么做?有什么方法可以在这里使用merge
命令吗?
我有一个公司小组(id,year)。每个公司也属于一个特定的国家。现在我想按国家添加 GDP 时间序列。
目标是,例如,美国的每家公司都被分配了当年美国的 GDP 等。
谁能告诉我该怎么做?有什么方法可以在这里使用merge
命令吗?
merge
正如正确说明的帮助文件一样,merge m:m
大多数情况下都是错误的方法。如果您将公司数据集设置为
clear
input country id year profit
1 1 2010 152
1 1 2011 -8
1 2 2010 1090
2 3 2010 502
2 3 2011 -15
end
tempfile firms
save `firms'
和国家文件
clear
input country year gdp
1 2010 287582354
1 2011 298723412
2 2010 89734531
2 2011 87340120
end
tempfile gdp
save `gdp'
然后从您的firms
文件开始,您可以按如下方式合并结果:
use `firms', clear
merge m:1 country year using `gdp'
* check results
tab _merge
assert _merge == 3
* clean up the remaining mess
drop if _merge !=3
drop _merge
这应该产生看起来像的输出
Result # of obs.
-----------------------------------------
not matched 0
matched 5 (_merge==3)
-----------------------------------------
如果你没有任何不匹配的东西(这是我的验证和清理代码),你应该很高兴。