* (Q) Does anyone know if there is a way to run a frequency for a variable and only display the top 10 (either descending or ascending) in the output? * (A) Posted by rlevesque@videotron.ca to SPSSX-L on 2001/09/25. SET MPRINT=no. *////////////////////. DEFINE !freq (keep=!TOKENS(1) /order=!TOKENS(1) /cat=!TOKENS(1) /fname=!TOKENS(1)) GET FILE=!fname. COMPUTE dummy=1. !LET !fname2=!QUOTE(!CONCAT('C:\\temp\\',!cat,'.SAV')) AGGREGATE /OUTFILE=* /BREAK=!cat /nb = N(dummy). SORT CASES BY nb !CONCAT('(',!order,')'). EXECUTE. N OF CASES !keep. * Sorting is necessary for the MATCH FILES command. SORT CASES BY !cat. SAVE OUTFILE=!fname2. GET FILE=!fname. SORT CASES BY !cat. MATCH FILES /FILE=* /TABLE=!fname2 /BY !cat. COMPUTE flag=~MISSING(nb). FILTER BY flag. FREQUENCIES VARIABLES=!cat /ORDER= ANALYSIS . * Delete the variable nb. MATCH FILES FILE=* /DROP=nb. !ENDDEFINE. *////////////////////. SET MPRINT=yes. * Print only educ having LOWEST 3 frequency. !freq keep=3 order=A cat=educ fname='c:\\program files\\spss\\employee data.sav'. EXECUTE. * Print only educ having HIGHEST 5 frequency. !freq keep=5 order=D cat=educ fname='c:\\program files\\spss\\employee data.sav'. EXECUTE. * Print all for checking purposes*. GET FILE='c:\\program files\\spss\\employee data.sav'. FREQ VAR=educ.