# Re: st: egen to calculate industry medians with own frim excluded

 From "Friedrich Huebler" <[email protected]> To [email protected] Subject Re: st: egen to calculate industry medians with own frim excluded Date Wed, 19 Dec 2007 16:10:42 -0500

```Another list member alerted me in a private message that my code gave
the wrong median value for the first observation. All other

. clist if group == 1, noobs

mpg     rep78   foreign      group     median
18         1  Domestic          1         21
24         1  Domestic          1         18

The median for the first observation should be 24, not 21. The problem
in my original code is that the sort order changed during the first
iteration of the loop because of the -bysort group- command. To obtain
the correct median values for all observations, the -sort- command has
to be placed before the loop, as in the code below.

sysuse auto, clear
keep mpg rep78 foreign
egen group = group(rep78 foreign)
replace group = . if rep78 == . | foreign == .
gen median = .
count
local n = r(N)
sort group
quietly forvalues i = 1/`n' {
gen temp = mpg if `i' != _n
by group: egen temp2 = median(temp)
replace median = temp2 in `i'
drop temp temp2
}
replace median = . if group == .

The median for the first observation is now 24.

. clist if group == 1, noobs

mpg     rep78   foreign      group     median
18         1  Domestic          1         24
24         1  Domestic          1         18

Friedrich

On Dec 19, 2007 11:39 AM, Friedrich Huebler <[email protected]> wrote:
> Erasmo,
>
> The commands below should give you what you need. Other list members
> may be able to offer more efficient solutions.
>
> sysuse auto, clear
> keep mpg rep78 foreign
> egen group = group(rep78 foreign)
> replace group = . if rep78 == . | foreign == .
> gen median = .
> count
> local n = r(N)
> quietly forvalues i = 1/`n' {
>   gen temp = mpg if `i' != _n
>   bysort group: egen temp2 = median(temp)
>   replace median = temp2 in `i'
>   drop temp temp2
> }
> replace median = . if group == .
>
> Friedrich
>
>
> On Dec 19, 2007 6:42 AM, Erasmo Giambona <[email protected]> wrote:
> > Dear Statalisters,
> >
> > I am using the following code to get the median of my ffo variable
> > within a certain industry/year for a sample of firms:
> >
> > egen ffo=median(med_ffoq ), by(industry year).
> >
> > However, I need to exclude the own firm before calculating the
> > industry median for ffo. Does anyone has any suggestions on how I
> > could do this with egen or any other command?
> >
> > Any help would be appreciated.
> > Regards,
> > Erasmo
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```