Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: RE: finding max of several variables


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
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

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



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index