创建重复的观测值作为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这是一种更好的方法。编辑。