2017-08-24 86 views
1

我有一個數據庫,每個城市有不同的產品。他們被列爲單一觀察。相反,我希望它能像一個比較不同城市中兩種產品的觀察結果。 我實際的數據庫看起來如下:在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 

謝謝!

回答

2

這應該讓你在那裏。基本思想是在幾乎相同的數據副本上形成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 
+1

要刪除重複,爲什麼不簡單地寫'放棄如果Market1> = Market2'而不是'放棄如果Market1 == Market2'? – eoraptor

+0

@eoraptor這是一個更好的方法。編輯。 –