*(Вопрос) Имеются результаты теста по учащимся 90 школ. Мне требуется построить в SPSS ящичковую диаграмму ("ящик-с-усами", boxplot) для каждой школы по отдельности по принципу один ящик - один график, т.е. 90 графиков, каждый из которых печатается на отдельной странице. Я хочу выполнить это через пакетную обработку и могу запросить её с помощью следующего синтаксиса: GET FILE='D:\\DDrive\\ADoc\\Board\\SchoolsCPS\\Data\\Ap\\test.sav'. SORT CASES BY school (A) . SPLIT FILE SEPARATE BY school . EXAMINE VARIABLES=rge BY grade /PLOT=BOXPLOT /STATISTICS=NONE/NOTOTAL /MISSING=REPORT. Однако, как я узнал из "Руководства по синтаксису SPSS", подкоманда PLOT даёт мало возможностей по форматированию графика. В подкоманде /BOX команды IGRAPH я нашёл кое-какие установки, которые мне требовались. Хотя, например, я всё ещё не могу найти способа установки временных отметок. Так или иначе, если я использую вместо EXAMINE... /PLOT команду IGRAPH, то отдельных результатов для каждой школы я не могу получить. Есть решение? *********************************************. *(Ответ) Автор: rlevesque@videotron.ca, 06.10.2001. *********************************************. GET FILE='c:\\program files\\spss\\employee data.sav'. SET MPRINT=no /PRINTBACK=listing. */////////////////////////////. DEFINE !ibox1(cat=!TOKENS(1) /var1=!TOKENS(1) /var2=!TOKENS(1)) AUTORECODE !cat /INTO cat$. COMPUTE dummy=1. SAVE OUTFILE='c:\\temp\\mydata.sav'. AGGREGATE /OUTFILE=* /BREAK=dummy /NbCat = MAX(cat$). WRITE OUTFILE='c:\\temp\\syntax.sps' /'DEFINE !nbcat()',NbCat,'!ENDDEFINE.'. EXECUTE. INCLUDE FILE='c:\\temp\\syntax.sps'. !ibox2 var1=!var1 var2=!var2. !ENDDEFINE. */////////////////////////////. * Мы используем отдельный макрос ibox2, чтобы синтаксис, созданный в ibox1 был доступен для использования. */////////////////////////////. DEFINE !ibox2 (var1=!TOKENS(1) /var2=!TOKENS(1)) !DO !cat=1 !TO !EVAL(!nbcat) GET FILE='c:\\temp\\mydata.sav'. SELECT IF cat$=!cat. IGRAPH /VIEWNAME='Boxplot' /X1 = VAR(!var2) TYPE = CATEGORICAL /Y = VAR(!var1) TYPE = SCALE /COORDINATE = VERTICAL /X1LENGTH=3.0 /YLENGTH=3.0 /X2LENGTH=3.0 /CHARTLOOK='NONE' /CATORDER VAR(!var2) (ASCENDING VALUES OMITEMPTY) /BOX OUTLIERS = ON EXTREME = ON MEDIAN = ON WHISKER = T. !DOEND !ENDDEFINE. */////////////////////////////. SET MPRINT=yes. !ibox1 cat=jobcat var1=salary var2=minority. * В вашем частном случае макрос следует вызывать так:. !ibox1 cat=school var1=rge var2=grade.