1

我有一个家庭数据集,其中包括各种食物的支出。我将它们分为主要的食物组,价格是用支出值除以数量得出的。对于一些家庭来说,价格为零,因为他们对相应食品组的消费为零。在这种情况下,我想将价格作为选择该非消费家庭的相应市、区和省的平均价格。

我怎么能用 STATA 做到这一点?

4

1 回答 1

1

正值的平均值是

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

您可以通过以下方式替换克隆中的零

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

除法技巧可以这样解释。如果price > 0为真,则该表达式的值为 1;如果 false 为 0。除以 1 显然会使值保持不变。除以 0 会产生缺失,它egenmean()函数将忽略,这正是我们想要的。

http://www.stata-journal.com/article.html?article=dm0055引用的文章中有更多的相关技术讨论

PS Stata 是正确的拼写。这是一个发明词,从来都不是首字母缩略词。

PS您还没有在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始终使用s。

于 2013-02-24T14:08:29.360 回答