Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# RE: st: replacing with mean

 From Nick Cox <[email protected]> To "'[email protected]'" <[email protected]> Subject RE: st: replacing with mean Date Thu, 2 Dec 2010 10:16:35 +0000

```Let's spell this out. Stata is _very good_ at stuff like this. Doing it for several variables is only a little more work than doing it for one.

foreach v of var revenue income assets {
egen work = mean(`v'), by(industry)
replace `v' = work if missing(`v')
drop work
}

Notice that we -drop work- after each use. (There is no -ereplace- corresponding to -egen-.) This is a way of cutting down on the memory demand that worried Fabio.

You could do it without -egen-.

gen work = .
sort industry
foreach v of var revenue income assets {
by industry: replace work = sum(`v') / sum(`v' < .)
by industry: replace work = work[_N]
replace `v' = work if missing(`v')
}

The statistical implications of such imputation are fairly horrendous! But so far as Stata is concerned:

For a tutorial on -by:-, see

SJ-2-1  pr0004  . . . . . . . . . . Speaking Stata:  How to move step by: step
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N. J. Cox
Q1/02   SJ 2(1):86--102                                  (no commands)
explains the use of the by varlist : construct to tackle
a variety of problems with group structure, ranging from
simple calculations for each of several groups to more
advanced manipulations that use the built-in _n and _N

For a tutorial on -foreach- and friends, see

SJ-2-2  pr0005  . . . . . .  Speaking Stata:  How to face lists with fortitude
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N. J. Cox
Q2/02   SJ 2(2):202--222                                 (no commands)
demonstrates the usefulness of for, foreach, forvalues, and
local macros for interactive (non programming) tasks

Note in particular that nothing obliges you to write out each variable name. You can use any congenial way of specifying varlists.

Nick
[email protected]

Nick Cox

Then it's a -foreach- loop.

Fabio Zona

I apologize: I forgot to mention that I have multiple variables at the same time, that is, for example, Revenues, Income, Assets... and I have to do the same for each variable..!

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```