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
The programs -rowsort- and -rowranks- are downloadable from the Stata
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'' < .
}
This isn't subtle about ties.
Nick
[email protected]
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/