Re: Help with macros

Posted by Eleonora Sidorova on
URL: http://spssx-discussion.165.s1.nabble.com/Help-with-macros-tp5740865p5740867.html

Thank you for your attantion to my problem.

I am trying to create macro, that delete duplicates codes in open ended questions.

The data looks like this:

DATA LIST LIST /a1_1@1o1  a1_1@2o1  a1_1@3o1  a1_1@4o1  a1_1@5o1  a1_1@6o1  a1_1@7o1  a1_1@8o1  a1_1@9o1
BEGIN DATA
10  49  30  4  44  1.5  999999  999999  49

This macro complete.

/*Kill double coded.
Define !dp_killrep ( List=!Noexp !Enclose('{', '}')
               /Char=!Default('ยต') !Noexp !Enclose('{', '}')
               /Mis=!Default('$Sysmis') !Noexp !Enclose('{', '}')).

count ####NumCols=!List (MISSING,SYSMIS,LO THRU HI).

!Let !@Nvars=####NumCols.
do repeat x=!List /y=!Concat(!Char, 1) To !Concat(!Char, !@Nvars).
compute y=x.
end repeat.

!Let !Vec=!Concat('vec',!Char).

Vector !Vec=!Concat(!Char, 1) To !Concat(!Char, !@Nvars).
Loop #X=2 To !@Nvars.
Loop #Y=1 To #X-1.
If !Vec(#X)=!Vec(#Y) !Vec(#X)=!Mis.
End loop.
End loop.

recode !List (else=sysmis).

do repeat x=!List /y=!Concat(!Char, 1) To !Concat(!Char, !@Nvars).
compute x=y.
end repeat.
delete variables !Concat(!Char, 1) To !Concat(!Char, !@Nvars).
!enddefine.

Eleonora