创建重复的观察值以在Stata中作为变量进行比较

时间:2017-08-24 19:54:53

标签: stata

我有一个每个城市都有不同产品的数据库。它们被列为单一观察。相反,我希望它像一个观察,比较不同城市的两种产品。 我的实际数据库如下所示:

Date Product Market Price  
 A      X       H     10
 A      X       I     5
 A      X       J     7

我希望它看起来像这样:

Date Product Market1 Market2 Price1 Price2
 A      X       H       I      10     5
 A      X       H       J      10     7     
 A      X       I       J       5     7

谢谢!

1 个答案:

答案 0 :(得分:3)

这应该可以让你一路走来。基本思想是在几乎相同的数据副本上使用joinby形成组内的所有成对组合,然后删除自我匹配和重复。

clear

input str1(Date Product Market) byte(Price)  
A X H 10
A X I 5
A X J 7
end

rename (Market Price) =2
tempfile markets
save "`markets'"
rename *2 *1
joinby Date Product using "`markets'"
drop if Market1>=Market2 // drop duplicates
order Date Product Market1 Market2 Price1 Price2
drop if Market1==Market2
list