Вывести частотную таблицу для n наиболее или наименее часто встречающихся категорий
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | * (Вопрос) Кто знает, как построить частотную таблицу, выведя в ней только 10 наименее или наиболее частых категорий переменной?. * (Ответ) Размещено в SPSSX-L 25.09.2001, автор: rlevesque@videotron.ca. 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. * Дополнительная сортировка необходима для команды MATCH FILES. 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 . * Убираем переменную nb. MATCH FILES FILE=* /DROP=nb. !ENDDEFINE. *////////////////////. SET MPRINT=yes. * Вывести 3 категории переменной educ с НАИМЕНЬШИМИ частотами. !freq keep=3 order=A cat=educ fname='c:\\program files\\spss\\employee data.sav'. EXECUTE. * Вывести 5 категорий переменной educ с НАИБОЛЬШИМИ частотами. !freq keep=5 order=D cat=educ fname='c:\\program files\\spss\\employee data.sav'. EXECUTE. * Вывести все категории, чтобы проверить правильность работы программы*. GET FILE='c:\\program files\\spss\\employee data.sav'. FREQ VAR=educ. |