Online File
Rick Aster: Professional SAS Programming Shortcuts: Contents
DATA _NULL_; RETAIN; SET A (KEEP=A) END=LAST; IF MIN = . THEN MIN = A; IF A <= .Z THEN NMISS + 1; ELSE DO; N + 1; SUM + A; USS + A*A; SC + A*A*A; SF + A*A*A*A; MIN = MIN MIN A; MAX = MAX MAX A; END; IF LAST THEN DO; IF N >= 1 THEN DO; RANGE = MAX - MIN; MEAN = SUM/N; CSS = USS - MEAN*SUM; END; IF N >>= 2 THEN DO; VAR = CSS/(N - 1); STD = SQRT(VAR); STDERR = SQRT(VAR/N); IF MEAN THEN CV = 100*STD/MEAN; IF STD THEN DO; IF N >= 3 THEN SKEWNESS = (SC - 3*MEAN*USS + 2*MEAN*MEAN*SUM) / (VAR*STD) * N/((N - 1)*(N - 2)); IF N >= 4 THEN KURTOSIS = (SF - 4*MEAN*SC + 6*MEAN*MEAN*USS - 3*MEAN*MEAN*MEAN*SUM) / (VAR*VAR) * N*(N + 1)/((N - 1)*(N - 2)*(N - 3)) - 3*(N - 1)*(N - 1)/((N - 2)*(N - 3)); T = MEAN/STDERR; PRT = 2*PROBT(-ABS(T), N - 1); END; END; PUT 'Descriptive Statistics Calculated In A Data Step' // N= / NMISS= / MIN= / MAX= / RANGE= / SUM= / MEAN= / USS= / CSS= / VAR= / STD= / STDERR= / CV= / SKEWNESS= / KURTOSIS= / T= / PRT= ; END; RUN;