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

创建重复的观测值作为Stata中的变量进行比较,stata,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

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

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

谢谢

这会让你一路走到那里。基本思想是在几乎相同的数据副本上使用
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

要删除重复项,为什么不简单地编写
drop if Market1>=Market2
,而不是
drop if Market1==Market2
?@eoraptor这是一种更好的方法。编辑。