2013-02-24 57 views
1

我有一個家庭數據集,其中包括各種食品的支出。我將它們分類爲主要食品類別,價格通過將支出價值除以數量得出。對於一些家庭來說,由於相應食品類別的消費量爲零,因此價格爲零。在這種情況下,我想要獲得該價格作爲相應城市的區域&省的平均價格,該省選擇該非消費家庭。如何用各自的平均值代替零值答案?

我該如何使用STATA做到這一點?

回答

1

正值的平均值是

egen mean_price = mean(price/(price > 0)), by(province district city) 

,你可以在一個克隆的

gen price2 = cond(price > 0, price, mean_price) 

分裂伎倆更換零可以這樣解釋。如果price > 0爲真,那麼表達式的計算結果爲1;如果爲0,則清楚地表明值保持不變。除以0會產生錯誤,其中egenmean()函數將忽略,這正是想要的。

有提到的文章中相關技術的http://www.stata-journal.com/article.html?article=dm0055

附:更多的討論Stata是正確的拼寫。這是一個發明的詞,並不是一個縮寫詞。

P.S.您還沒有承認在How to get the difference of two variables, when there are missing values?

更高版本的答案:

在這種情況下,另一種方式是

egen total = total(price), by(province district city) 
    egen number = total(price > 0), by(province district city) 
    gen price2 = cond(price > 0, price, total/number) 

零價格使總沒有什麼區別。始終使用double

+0

它的工作原理。非常感謝您的快速回復。 – user2050995 2013-02-24 18:25:38