* (Вопрос) Мой массив данных включает списки выпускников средней школы: тех, кто продолжил образование (InSchool=1) и тех, кто не продолжил (InSchool=0). Массив также включает переменные "Пол" (Gender) и "Учебная программа" (TypeSchl), по которой было продолжено образование (выделяем 4-годичные, 2-годичные, менее, чем двухгодичные программы обучения). Нужна столбцовая диаграмма, показывающая разделения по типам программ между представителями разных полов, при условии, что InSchool=1. Т.е., первая часть графика показывает проценты по TypeSchl для всех женщин, а вторая - то же распределение, но для мужчин. Те, кто не продолжал обучение, в анализ не включаются. В каждой части графика сумма процентов должна быть равна 100.
* (Ответ) размещён rlevesque@videotron.ca в SPSSX-L 29.01.2002.
INPUT PROGRAM.
LOOP id=1 TO 200.
COMPUTE inschool=UNIFORM(1)<.5.
COMPUTE gender=UNIFORM(1)<.5.
COMPUTE typeschl=TRUNC(1+UNIFORM(3)).
END CASE.
END LOOP.
END FILE.
END INPUT PROGRAM.
LIST /CASES=FROM 1 TO 10.
SELECT IF inschool=1.
* Подсчитываем частоту каждой категории.
AGGREGATE
/OUTFILE=*
/BREAK= gender typeschl
/id_1 = N(id).
* Взвешиваем по частоте каждой категории, т.е. файл получается эквивалентным исходному файлу.
WEIGHT BY id_1.
* Подсчитываем частоты для мужчин и женщин, временно сохраняем во внешний временный файл.
AGGREGATE
/OUTFILE='c:\\temp\\temp.sav'
/BREAK= gender
/id_g = N(id_1).
* Добавляем к текущему файлу частоты для мужчин и женщин из внешнего временного файла.
MATCH FILES /FILE=*
/TABLE='C:\\Temp\\temp.sav'
/BY gender.
* Подсчитываем и отображаем проценты (общий процент по полу равен 100).
COMPUTE pc=(id_1/id_g)*100.
VARIABLE LABEL pc 'Процент'.
GRAPH
/BAR(GROUPED)=MEAN(pc) BY gender BY typeschl
/MISSING=REPORT.