*(Q) How can I count the number of unique values across about 400 variables. *(A) Raynald Levesque 20002/08/16. * http://pages.infinit.net/rlevesqu/index.htm. DATA LIST LIST /var1 var2 var3 varn. BEGIN DATA 1 2 3 4 1 1 1 1 1 1 2 4 2 3 2 2 . 1 . 1 END DATA. LIST. *///////////////. DEFINE !nb(nbvars=!TOKENS(1) /v1=!TOKENS(1) /v2=!TOKENS(1)) VECTOR v=!v1 TO !v2 /val(!nbvars). LOOP #cnt=1 TO !nbvars. COMPUTE val(#cnt)=v(#cnt). END LOOP. LOOP #cnt1 = 1 TO !nbvars - 1. DO IF ~MISSING(val(#cnt1)). LOOP #cnt2 = #cnt1 + 1 TO !nbvars. IF val(#cnt2)=v(#cnt1) val(#cnt2)=$SYSMIS. END LOOP. END IF. END LOOP. COMPUTE distinct=!nbvars - NMISS(val1 TO !CONCAT('val',!nbvars)). * Clean up. ADD FILES FILE=* /DROP=val1 TO !CONCAT('val',!nbvars). !ENDDEFINE. *///////////////. * Call macro. SET MPRINT=yes. !nb nbvars=4 v1=var1 v2=varn. SET MPRINT=no. EXECUTE.