# Return to Minitab macro index
# How to save this page as a macro
# FNS.MAC # # Finds the five-number summary for a set of data. # Computes Q1 and Q3 differently than Minitab's usual practice. # 03/10/98 # DKN # macro fns x.1-x.n; counts c; by Grp. ################################# ### declarations ### ################################# mcolumn x.1-x.n c tmp Grp mcolumn ColNum Categ Freq Min Q1 Med Q3 Max IQR mcolumn tColNum tCateg tFreq tMin tQ1 tMed tQ3 tMax mconstant a n ################################# ### main body ### ################################# brief 0 if counts=1 # Can't handle freqs right now. else DO a = 1:n LET tColNum = a IF BY = 1 STATS x.a; BY Grp; GVALUES tCateg; N tFreq; MINIM tMin; QONE tQ1; MEDIAN tMed; QTHREE tQ3; MAXIM tMax. LET tColNum(N(tFreq)) = '*' ELSE LET TCateg = 0 STATS x.a; N tFreq; MINIM tMin; QONE tQ1; MEDIAN tMed; QTHREE tQ3; MAXIM tMax. IF tFreq/2 = ROUND(tFreq/2) LET tmp = x.a LET tmp(tFreq+1) = tMed STATS tmp; QONE tQ1; QTHREE tQ3. ENDIF ENDIF STACK ColNum tColNum ColNum STACK Categ tCateg Categ STACK Freq tFreq Freq STACK Min tMin Min STACK Q1 tQ1 Q1 STACK Med tMed Med STACK Q3 tQ3 Q3 STACK Max tMax Max ENDDO endif LET IQR = Q3-Q1 BRIEF 2 IF BY = 1 IF n>1 PRINT ColNum Categ Freq Min Q1 Med Q3 Max IQR ELSE PRINT Categ Freq Min Q1 Med Q3 Max IQR ENDIF ELSE # IF n>1 # PRINT ColNum Freq Min Q1 Med Q3 Max IQR # ELSE PRINT Freq Min Q1 Med Q3 Max IQR # ENDIF ENDIF ENDMACRO