You want to subtract the minimum of the variable, then divide by the
range:
sum myvar
replace myvar = (myvar - `r(min)') / (`r(max)'-`r(min)')
For lots of variables, this can be rolled up in foreach:
foreach var in thisvar thatvar othervar {
qui sum `var'
replace `var' = (`var' - `r(min)') / (`r(max)'-`r(min)')
}
Nick Winter
> -----Original Message-----
> From: Moliterno, Thomas [mailto:[email protected]]
> Sent: Friday, July 19, 2002 12:49 PM
> To: [email protected]
> Subject: st: standardizing on [0,1]
>
>
> I have a variable with values ranging from -1.58e-6 to 946515 (annual
> scores on a particular matrix derived measure). I would like to
> standardize these values on [0,1] so that the observation with the
> highest value is given the value 1. Any thoughts on an
> efficient way to
> do this? Thanks to all in advance.
>
> Tom
>
> **********************************************
> Thomas P. Moliterno
> Graduate School of Management
> University of California, Irvine
> [email protected]
> **********************************************
> *
> * 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/
>
*
* 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/