st: RE: finding max of several variables

 From "Nick Cox" To Subject st: RE: finding max of several variables Date Mon, 6 Jul 2009 17:49:51 +0100

```Such problems have been recently reviewed in

SJ-9-1  pr0046  . . . . . . . . . . . . . . . . . . .  Speaking Stata:
Rowwise
(help rowsort, rowranks if installed) . . . . . . . . . . .  N.
J. Cox
Q1/09   SJ 9(1):137--157
shows how to exploit functions, egen functions, and Mata
for working rowwise; rowsort and rowranks are introduced

Journal to all, subscribers or not.

Regardless of that, the position of the maximum is obtainable from code
like this:

gen pos = .
gen max = -1
tokenize "3 4 7 11 12"

forval j = 1/5 {
replace pos = `j' if prob``j'' > max & prob``j'' < .
replace max = prob``j'' if prob``j'' > max & prob``j'' < .
}

Nick
n.j.cox@durham.ac.uk

Walter R. Paczkowski, Ph.D.

I'm still new to Stata programming, so I hope someone can help with a
simple problem.  I have five variables that are probabilities estimated
from mlogit: prob3, prob4, prob7, prob11, prob12, each with 734 cases.
I want to find the max for each case using something like

max(prob3, prob4, prob7, prob11, prob12)

but then get the position in this list for that max for each case.  In
short, for case 1, if the max is prob4, I want to get 2; if it's prob11,

I want 4; etc.  I should have 734 positions of the max in the list.  How

can this be done?  Any help is appreciated.

*
*   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/
```