在Stata中对egen使用if限定符 [英] Using if qualifier with egen in Stata
本文介绍了在Stata中对egen使用if限定符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用的是STATA,我正在试图计算公司竞争对手在市场上的平均价格。我有如下数据:
Market Firm Price
----------------------
1 1 100
1 2 150
1 3 125
2 1 50
2 2 100
2 3 75
3 1 100
3 2 200
3 3 200
我试图计算每家公司的竞争对手的平均价格,所以我想生成一个新的域,它是市场中其他公司的平均价值。它将如下所示:
Market Firm Price AvRivalPrice
------------------------------------
1 1 100 137.2
1 2 150 112.5
1 3 125 125
2 1 50 87.5
2 2 100 62.5
2 3 75 75
3 1 100 200
3 2 200 150
3 3 200 150
要按组计算平均值,我可以使用egen命令:
egen AvPrice = mean(price), by(Market)
但这并不排除该公司自己的平均价格,据我所知,使用if
限定符只会改变它所操作的观察结果,而不会改变它平均计算的组。有没有简单的方法可以做到这一点,或者我需要创建循环并手动生成每个平均值?
推荐答案
这是一种避免显式循环的方法,尽管它需要几行代码:
by Market: egen Total = total(Price)
replace Total = Total - Price
by Market: gen AvRivalPrice = Total / (_N-1)
drop Total
这篇关于在Stata中对egen使用if限定符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文