Используя квалификатор if с egen в Stata

Я использую 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 квалификатор изменяет только наблюдения, над которыми он работает, а не группы, по которым он усредняется. Есть ли простой способ сделать это или мне нужно создавать циклы и генерировать каждое среднее значение вручную?

9
задан Nick Cox 28 October 2014 в 23:24
поделиться