在Stata中对egen使用if限定符 [英] Using if qualifier with egen in Stata

查看:11
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆