*! Marc Jacobs, Utrecht, maandag 6 januari (1) 1992, <15:19> * REVERSE RECODING * syntax: omscore var_name * new variabele will be created: rr_var_name * algoritm: (max+min) - score * only possible if: increment = 1, adjecent values of variabele * testing by correlating original and reverse recoded variabele. * Correlation must be -1 prog def omscore version 2.1 if "%_*"=="" { di in red "SYNTAX: After" in wh " omscore " in red "is required: var_name for reverse recoding" exit 198 } capture macro drop %_m capture macro drop %_i capture drop rr_%_1 capture g rr_%_1 = %_1 confirm existence rr_%_1 if _rc ~= 0 { di in red "SYNTAX: Shorten variable name " in ye "%_1" in red " to first 5 characters" exit 198 } quietly sum %_1 mac def _m = _result(6) + _result(5) quietly replace rr_%_1 = %_m - %_1 quietly corr %_1 rr_%_1 mac def _i = _result(4) if %_i ~= -1 { di in red "Reverse recoding went wrong... new variabele " rr_%_1 " deleted" di in red "Possible problems: increment not 1 or values variabele not joined" drop rr_%_1 } if %_i == -1 { di in bl "Reverse recoding ok. New variabele = rr_%_1" } capture macro drop %_m capture macro drop %_i end