*(Q) I have four scales whose minimum and maximum values are different. I would like to change them so they all range from 0 to 1. What I have been doing is writing a syntax code for each of the scales with their minimum values in the expression and then dividing everything by their range (e.g. COMPUTE scale2 = (scale1-0.13)/0.6). Is there a way to do this so I don't have to manually enter the values for each scale? * (A) Posted to SPSSX-L by Raynald Levesque@videotron.ca. GET FILE='c:\\program files\\spss\\employee data.sav'. */////////////. DEFINE !rescale (var=!TOKENS(1) /newvar=!TOKENS(1)) SAVE OUTFILE='c:\\temp\\data file.sav'. COMPUTE nobreak=1. AGGREGATE OUTFILE=* /PRESORTED /BREAK=nobreak /min=MIN(!var) /max=MAX(!var). COMPUTE range=max-min. WRITE OUTFILE="C:\\temp\\rescale.sps" /"COMPUTE " !QUOTE(!newvar) "=(" !QUOTE(!var) "-" min(F12.11) ")/" range(F12.11) ".". EXECUTE. GET FILE='c:\\temp\\data file.sav'. INCLUDE "C:\\temp\\rescale.sps". !ENDDEFINE. */////////////. * example rescale salary to be between 0 and 1. SET MPRINT=yes. !rescale var=salary newvar=salary2. SET MPRINT=no. * show that it works. GRAPH /SCATTERPLOT(BIVAR)=salary WITH salary2 /MISSING=LISTWISE . * example rescale salbegin to be between 0 and 1. SET MPRINT=yes. !rescale var=salbegin newvar=salbegin2. SET MPRINT=no. * show that it works. GRAPH /SCATTERPLOT(BIVAR)=salbegin WITH salbegin2 /MISSING=LISTWISE .