*(Вопрос) Пытаюсь найти способ автоматически построить графики для переменных, в зависимости от их типа. Например, столбцовые диаграммы для номинальных и гистограммы для числовых (интервальных) переменных. Хотя это очень условно, но мне удобно разделять переменные на номинальные и числовые в зависимости от количества разных значений, в них содержащихся. Например, гистограммы должны строиться для переменных, содержащих более 10 разных значений. *(Ответ) Размещён в новостной группе SPSS newsgroup 02.03.2002. Автор: Raynald Levesque. * Следующая программа сделает это. Минимальный порог (10 в вопросе выше) задаётся в качестве параметра макроса. SET MPRINT=no. *////////////////////. DEFINE !graph(fpath=!TOKENS(1) /breakpt=!TOKENS(1) /varn=!CMDEND) !DO !var !IN (!varn) GET FILE=!fpath. COMPUTE nobreak=1. AGGREGATE /OUTFILE=* /BREAK=!var /nbval = N(nobreak). COMPUTE nobreak=1. RANK VARIABLES=nbval BY nobreak /N INTO n. SELECT IF $CASENUM=1. STRING vname(A8). COMPUTE vname=!QUOTE(!var). SAVE OUTFILE=!QUOTE(!CONCAT('C:\\temp\\',!var,'.sav')) /KEEP=vname n. !DOEND !LET !var1=!HEAD(!varn) GET FILE=!QUOTE(!CONCAT('C:\\temp\\',!var1,'.sav')). !DO !var !IN (!TAIL(!varn)) ADD FILES FILE=* /FILE=!QUOTE(!CONCAT('C:\\temp\\',!var,'.sav')). !DOEND DO IF n>!breakpt. WRITE OUTFILE='c:\\temp\\print bar chart or histog.sps' /'GRAPH /HISTOGRAM='vname'.'. ELSE. WRITE OUTFILE='c:\\temp\\print bar chart or histog.sps' /'GRAPH /BAR(SIMPLE)=COUNT BY 'vname' /MISSING=REPORT.'. END IF. EXECUTE. GET FILE=!fpath. INCLUDE 'c:\\temp\\print bar chart or histog.sps'. !ENDDEFINE. *////////////////////. SET MPRINT=yes. * Пример 1. !graph fpath ='c:\\program files\\spss\\employee data.sav' breakpt=12 varn =salary educ jobcat. * Пример 2. !graph fpath ='c:\\program files\\spss\\sales.sav' breakpt=10 varn =revenue support.