1

我有一个公司小组(id,year)。每个公司也属于一个特定的国家。现在我想按国家添加 GDP 时间序列。

目标是,例如,美国的每家公司都被分配了当年美国的 GDP 等。

谁能告诉我该怎么做?有什么方法可以在这里使用merge命令吗?

4

1 回答 1

1

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)
-----------------------------------------

如果你没有任何不匹配的东西(这是我的验证和清理代码),你应该很高兴。

于 2013-01-29T15:56:25.787 回答