format _SEGMNT_ CLS_255_.; *****************************************; *** Begin Scoring Code from PROC DMVQ ***; *****************************************; *** Begin Class Look-up, Standardization, Replacement ; drop _dm_bad; _dm_bad = 0; *** Standardize G ; drop T_G ; if missing( G ) then T_G = .; else T_G = (G - 117.361185983827) * 0.0311470971186; *** Standardize SLG ; drop T_SLG ; if missing( SLG ) then T_SLG = .; else T_SLG = (SLG - 0.43440567864593) * 13.4158943513423; *** Standardize AVG ; drop T_AVG ; if missing( AVG ) then T_AVG = .; else T_AVG = (AVG - 0.2688740955684) * 32.4088832276906; *** Standardize OBP ; drop T_OBP ; if missing( OBP ) then T_OBP = .; else T_OBP = (OBP - 0.33311012514627) * 24.4922704190754; *** Standardize AB ; drop T_AB ; if missing( AB ) then T_AB = .; else T_AB = (AB - 397.849056603773) * 0.00662300584074; *** Standardize R ; drop T_R ; if missing( R ) then T_R = .; else T_R = (R - 57.6307277628032) * 0.03459084478306; *** Standardize H ; drop T_H ; if missing( H ) then T_H = .; else T_H = (H - 109.180592991913) * 0.0209770275107; *** Standardize H2 ; drop T_H2 ; if missing( H2 ) then T_H2 = .; else T_H2 = (H2 - 22.0431266846361) * 0.09424433429358; *** Standardize H3 ; drop T_H3 ; if missing( H3 ) then T_H3 = .; else T_H3 = (H3 - 2.24528301886792) * 0.39556216228403; *** Standardize HR ; drop T_HR ; if missing( HR ) then T_HR = .; else T_HR = (HR - 13.8005390835579) * 0.09612257848054; *** Standardize RBI ; drop T_RBI ; if missing( RBI ) then T_RBI = .; else T_RBI = (RBI - 55.1967654986523) * 0.03491192878035; *** Standardize BB ; drop T_BB ; if missing( BB ) then T_BB = .; else T_BB = (BB - 39.8867924528301) * 0.03918973490741; *** Standardize SO ; drop T_SO ; if missing( SO ) then T_SO = .; else T_SO = (SO - 71.4636118598382) * 0.03054843615385; *** Standardize SB ; drop T_SB ; if missing( SB ) then T_SB = .; else T_SB = (SB - 6.4743935309973) * 0.11060572557162; *** End Class Look-up, Standardization, Replacement ; *** Omitted Cases; if _dm_bad then do; _SEGMNT_ = .; Distance = .; goto _vlex ; end; *** omitted; *** Compute Distances and Cluster Membership; label _SEGMNT_ = 'Cluster ID' ; label Distance = ' ' ; array _vads [3] _temporary_; drop _vqclus _vqmvar _vqnvar; _vqmvar = 0; do _vqclus = 1 to 3; _vads [_vqclus] = 0; end; if not missing( T_G ) then do; _vads [1] + ( T_G - 1.00923202340703 )**2; _vads [2] + ( T_G - 0.47165056135532 )**2; _vads [3] + ( T_G - -0.92859187355031 )**2; end; else _vqmvar + 1; if not missing( T_SLG ) then do; _vads [1] + ( T_SLG - 1.25028197980099 )**2; _vads [2] + ( T_SLG - 0.03550316834247 )**2; _vads [3] + ( T_SLG - -0.41671210236405 )**2; end; else _vqmvar + 1; if not missing( T_AVG ) then do; _vads [1] + ( T_AVG - 0.79790170231817 )**2; _vads [2] + ( T_AVG - 0.30886133171842 )**2; _vads [3] + ( T_AVG - -0.49467458557033 )**2; end; else _vqmvar + 1; if not missing( T_OBP ) then do; _vads [1] + ( T_OBP - 0.95757571466121 )**2; _vads [2] + ( T_OBP - 0.20242600014711 )**2; _vads [3] + ( T_OBP - -0.46795895118384 )**2; end; else _vqmvar + 1; if not missing( T_AB ) then do; _vads [1] + ( T_AB - 1.0858466555936 )**2; _vads [2] + ( T_AB - 0.53434758211736 )**2; _vads [3] + ( T_AB - -1.00498313138871 )**2; end; else _vqmvar + 1; if not missing( T_R ) then do; _vads [1] + ( T_R - 1.38087149141169 )**2; _vads [2] + ( T_R - 0.35614357863135 )**2; _vads [3] + ( T_R - -0.93352544845809 )**2; end; else _vqmvar + 1; if not missing( T_H ) then do; _vads [1] + ( T_H - 1.17049742912144 )**2; _vads [2] + ( T_H - 0.51493120480808 )**2; _vads [3] + ( T_H - -0.97774903143379 )**2; end; else _vqmvar + 1; if not missing( T_H2 ) then do; _vads [1] + ( T_H2 - 1.22215249267096 )**2; _vads [2] + ( T_H2 - 0.36855762541469 )**2; _vads [3] + ( T_H2 - -0.89436067400408 )**2; end; else _vqmvar + 1; if not missing( T_H3 ) then do; _vads [1] + ( T_H3 - 0.05144164862028 )**2; _vads [2] + ( T_H3 - 0.42545869135633 )**2; _vads [3] + ( T_H3 - -0.36735457607108 )**2; end; else _vqmvar + 1; if not missing( T_HR ) then do; _vads [1] + ( T_HR - 1.57984965399419 )**2; _vads [2] + ( T_HR - -0.00401105599712 )**2; _vads [3] + ( T_HR - -0.65097019788455 )**2; end; else _vqmvar + 1; if not missing( T_RBI ) then do; _vads [1] + ( T_RBI - 1.53285256409853 )**2; _vads [2] + ( T_RBI - 0.16414138902254 )**2; _vads [3] + ( T_RBI - -0.83434858648903 )**2; end; else _vqmvar + 1; if not missing( T_BB ) then do; _vads [1] + ( T_BB - 1.19130548914153 )**2; _vads [2] + ( T_BB - 0.18850261515179 )**2; _vads [3] + ( T_BB - -0.70472943466991 )**2; end; else _vqmvar + 1; if not missing( T_SO ) then do; _vads [1] + ( T_SO - 1.03898180889546 )**2; _vads [2] + ( T_SO - 0.18180459455689 )**2; _vads [3] + ( T_SO - -0.73807251354471 )**2; end; else _vqmvar + 1; if not missing( T_SB ) then do; _vads [1] + ( T_SB - 0.02095021778979 )**2; _vads [2] + ( T_SB - 0.44761849856457 )**2; _vads [3] + ( T_SB - -0.44224279566724 )**2; end; else _vqmvar + 1; _vqnvar = 14 - _vqmvar; if _vqnvar <= 2.2282620193436E-11 then do; _SEGMNT_ = .; Distance = .; end; else do; _SEGMNT_ = 1; Distance = _vads [1]; _vqfzdst = Distance * 0.99999999999988; drop _vqfzdst; do _vqclus = 2 to 3; if _vads [_vqclus] < _vqfzdst then do; _SEGMNT_ = _vqclus; Distance = _vads [_vqclus]; _vqfzdst = Distance * 0.99999999999988; end; end; Distance = sqrt(Distance * (14 / _vqnvar)); end; _vlex :; ***************************************; *** End Scoring Code from PROC DMVQ ***; ***************************************;