*JBA 30Oct2006 *For a numeric variable list converts all variables to largest data type program define decompress version 8 syntax [varlist] local typelist "" foreach x in `varlist' { local type : type `x' local typelist "`typelist' `type'" } // test that all variables are of the same type tokenize `varlist' cap confirm numeric variable `1' if !_rc { confirm numeric variable `varlist' local double : list posof "double" in typelist local float : list posof "float" in typelist local long : list posof "long" in typelist local int : list posof "int" in typelist if (`double') local type "double" else if (`float') local type "float" else if (`long') local type "long" else if (`int') local type "int" else local type "byte" } else { confirm string variable `varlist' local maxlen = 0 foreach x in `varlist' { local len = real(substr("`:type `x''",4,.)) if (`len' > `maxlen') { local maxlen = `len' } } local type "str`maxlen'" } recast `type' `varlist' forvalues i = 1/`:word count `varlist'' { local type : word `i' of `typelist' local var : word `i' of `varlist' local newtype : type `var' if "`newtype'" != "`type'" { di "{txt}`var' was {res}`type' {txt}now {res}`newtype'" } } end