LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (January 2010)Back to main SPSSX-L pageJoin or leave SPSSX-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Sat, 30 Jan 2010 22:34:01 -0500
Reply-To:     Richard Ristow <wrristow@mindspring.com>
Sender:       "SPSSX(r) Discussion" <SPSSX-L@LISTSERV.UGA.EDU>
From:         Richard Ristow <wrristow@mindspring.com>
Subject:      Re: DO REPEAT and shifting dataset names and dates
Comments: To: Albert-Jan Roskam <fomcl@yahoo.com>
Comments: cc: Alan Krinsky <Alan.Krinsky@UMASSMEMORIAL.ORG>
In-Reply-To:  <812891.32787.qm@web110706.mail.gq1.yahoo.com>
Content-Type: text/html; charset="us-ascii"

<html> <body> At 05:26 AM 1/30/2010, Albert-Jan Roskam wrote:<br><br> <blockquote type=cite class=cite cite="">Inside DO REPEAT, only xsave, count, select, recode, do if, do repeat, compute, loop (and maybe a couple of other commands) can be used.</blockquote><br> You can use <tt><font size=2>RECODE</font></tt> inside <tt><font size=2>DO REPEAT</font></tt>, but since it accepts variable lists itself, you will rarely need to.<br><br> You can't use XSAVE or DO REPEAT inside a DO REPEAT; see below. You can nest LOOP inside DO REPEAT, and DO REPEAT inside LOOP.<br><br> You can use declarative SPSS commands,<br> <tt><font size=2>STRING, NUMERIC, FORMATS, MISSING VALUES,<br> VAR LABELS, VAL LABELS<br> </font></tt>inside a DO REPEAT, but using variable lists on the declarative statements is usually preferable.<br><br> ==============================<br> Illustrations using DO REPEAT<br> ==============================<br> <font size=1> |-----------------------------|---------------------------|<br> |Output Created&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |30-JAN-2010 22:23:04&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br> |-----------------------------|---------------------------|<br> [RolledUp] <br> &nbsp;<br> Alphabet Serial1 Serial2 Serial3 Letter1 Letter2 Letter3<br><br> Roman&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp; A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C<br> Greek&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp; Gamma&nbsp;&nbsp; Delta&nbsp;&nbsp; Epsilon<br><br> Number of cases read:&nbsp; 2&nbsp;&nbsp;&nbsp; Number of cases listed:&nbsp; 2<br><br> &nbsp;<br> </font><font size=1>*&nbsp; XSAVE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... .<br> *&nbsp; ...&nbsp;&nbsp; XSAVE inside LOOP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... .<br> DATASET ACTIVATE RolledUp WINDOW=ASIS.<br> DATASET COPY&nbsp;&nbsp;&nbsp;&nbsp; WithLoop WINDOW=FRONT.<br> DATASET ACTIVATE WithLoop WINDOW=FRONT.<br> VECTOR&nbsp; Nbr=Serial1 TO Serial3<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /Ltr=Letter1 TO Letter3.<br><br> NUMERIC Order&nbsp; (F2).<br> STRING&nbsp; Text&nbsp;&nbsp; (A7).<br><br> LOOP&nbsp; #Idx = 1 TO 3.<br> .&nbsp; COMPUTE Order = Nbr(#Idx).<br> .&nbsp; COMPUTE Text&nbsp; = Ltr(#Idx).<br> .&nbsp; XSAVE&nbsp;&nbsp; OUTFILE=File1<br> &nbsp;&nbsp; /KEEP=&nbsp; Alphabet Order Text.<br> END LOOP.<br> EXECUTE /* ---&nbsp; One of the case where it's needed&nbsp; --- */.<br><br> GET FILE=File1.<br> LIST.<br><br> </font><font size=1>List<br> |-----------------------------|---------------------------|<br> |Output Created&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |30-JAN-2010 22:23:11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br> |-----------------------------|---------------------------|<br> C:\Documents and Settings\Richard\My Documents<br> &nbsp; \Temporary\SPSS\<br> &nbsp;&nbsp; 2010-01-30 Roskam - <br> &nbsp;&nbsp; Re-DO REPEAT and shifting dataset names and dates. - LOOP.SAV<br> &nbsp;<br> Alphabet Order Text<br><br> Roman&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; A<br> Roman&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp; B<br> Roman&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp; C<br> Greek&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp; Gamma<br> Greek&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp; Delta<br> Greek&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp; Epsilon<br><br> <br> Number of cases read:&nbsp; 6&nbsp;&nbsp;&nbsp; Number of cases listed:&nbsp; 6<br><br> &nbsp;<br> </font><font size=1>*&nbsp; ...&nbsp;&nbsp; XSAVE inside DO REPEAT&nbsp;&nbsp; ... .<br> DATASET ACTIVATE RolledUp WINDOW=ASIS.<br> DATASET COPY&nbsp;&nbsp;&nbsp;&nbsp; WithRpt&nbsp; WINDOW=FRONT.<br> DATASET ACTIVATE WithRpt&nbsp; WINDOW=FRONT.<br> NUMERIC Order&nbsp; (F2).<br> STRING&nbsp; Text&nbsp;&nbsp; (A7).<br><br> DO REPEAT<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nbr=Serial1 TO Serial3<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /Ltr=Letter1 TO Letter3.<br> .&nbsp; COMPUTE Order = Nbr.<br> .&nbsp; COMPUTE Text&nbsp; = Ltr.<br> .&nbsp; XSAVE&nbsp;&nbsp; OUTFILE=File2<br><br> &gt;Error # 4530.&nbsp; Command name: XSAVE<br> &gt;This command is not allowed inside the DO REPEAT/ END REPEAT facility.&nbsp; The<br> &gt;command will be ignored.<br> &gt;This command not executed.<br><br> &nbsp;&nbsp; /KEEP=&nbsp; Alphabet Order Text.<br> END REPEAT.<br><br> EXECUTE /* ---&nbsp; One of the cases where it's needed&nbsp; --- */.<br><br> GET FILE=File2.<br><br> &gt;Error # 31.&nbsp; Command name: GET FILE<br> &gt;File not found.<br> &gt;This command not executed.<br><br> <br><br> *&nbsp; Nested DO REPEAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... .<br><br> NEW FILE.<br> INPUT PROGRAM.<br><br> NUMERIC A B C D E (F2).<br> RECODE&nbsp; A B C D E (ELSE=1).<br><br> END CASE.<br> END FILE.<br> END INPUT PROGRAM.<br><br> DO REPEAT FACTOR = 2 3 5.<br> .&nbsp; DO REPEAT NUMBER = A TO E.<br><br> &gt;Error # 4530.&nbsp; Command name: DO REPEAT<br> &gt;This command is not allowed inside the DO REPEAT/ END REPEAT facility.&nbsp; The<br> &gt;command will be ignored.<br> &gt;This command not executed.<br><br> .&nbsp;&nbsp;&nbsp;&nbsp; COMPUTE NUMBER = NUMBER * FACTOR.<br> .&nbsp; END REPEAT.<br> END REPEAT.<br><br> &gt;Error # 4001.&nbsp; Command name: END REPEAT<br> &gt;An END REPEAT command has appeared without a previous DO REPEAT command.<br> &gt;This command not executed.<br><br> LIST.<br><br> </font><font size=1>List<br> |-----------------------------|---------------------------|<br> |Output Created&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |30-JAN-2010 22:23:19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br> |-----------------------------|---------------------------|<br> &nbsp;A&nbsp; B&nbsp; C&nbsp; D&nbsp; E&nbsp;&nbsp; NUMBER<br><br> &nbsp;1&nbsp; 1&nbsp; 1&nbsp; 1&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br><br> Number of cases read:&nbsp; 1&nbsp;&nbsp;&nbsp; Number of cases listed:&nbsp; 1<br><br> &nbsp;<br> </font><font size=1>*&nbsp; DO REPEAT within LOOP is documented to work&nbsp; --&nbsp;&nbsp;&nbsp;&nbsp; ... .<br> *&nbsp; see Command Syntax Reference article on DO REPEAT&nbsp;&nbsp; ... .<br><br> <br> *&nbsp; LOOP within DO REPEAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... .<br><br> NEW FILE.<br> INPUT PROGRAM.<br><br> NUMERIC A B C D E (F2).<br> RECODE&nbsp; A B C D E (ELSE=1).<br><br> END CASE.<br> END FILE.<br> END INPUT PROGRAM.<br><br> VECTOR NUMBER=A TO E.<br><br> DO REPEAT FACTOR = 2 3 5.<br> .&nbsp; LOOP #IDX = 1 TO 5.<br> .&nbsp;&nbsp;&nbsp;&nbsp; COMPUTE NUMBER(#IDX) = NUMBER(#IDX) * FACTOR.<br> .&nbsp; END LOOP..<br> END REPEAT.<br><br> LIST.<br><br> </font><font size=1>List<br> |-----------------------------|---------------------------|<br> |Output Created&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |30-JAN-2010 22:23:23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br> |-----------------------------|---------------------------|<br> &nbsp;A&nbsp; B&nbsp; C&nbsp; D&nbsp; E<br><br> 30 30 30 30 30<br><br> Number of cases read:&nbsp; 1&nbsp;&nbsp;&nbsp; Number of cases listed:&nbsp; 1<br><br> &nbsp;<br> </font><font size=1>*&nbsp; Declarative statements within DO REPEAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... ,<br><br> NEW FILE.<br> INPUT PROGRAM.<br> .&nbsp; NUMERIC RecdNum (F2).<br> .&nbsp; COMPUTE RecdNum=1.<br> .&nbsp; END CASE.<br> END FILE.<br> END INPUT PROGRAM.<br><br> DO REPEAT NewVar = V1 TO V5.<br> .&nbsp; NUMERIC NewVar (F2).<br> END REPEAT.<br><br> LIST.<br><br> </font><font size=1>List<br> |-----------------------------|---------------------------|<br> |Output Created&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |30-JAN-2010 22:23:29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br> |-----------------------------|---------------------------|<br> RecdNum V1 V2 V3 V4 V5<br><br> &nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; .&nbsp; .&nbsp; .&nbsp; .&nbsp; .<br><br> Number of cases read:&nbsp; 1&nbsp;&nbsp;&nbsp; Number of cases listed:&nbsp; 1<br> </font>==============================<br> APPENDIX:&nbsp; Test data, and code<br> ==============================<br> <tt><font size=2>*&nbsp; C:\Documents and Settings\Richard\My Documents&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br> *&nbsp;&nbsp;&nbsp; \Technical\spssx-l\Z 2010a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br> *&nbsp;&nbsp;&nbsp; \2010-01-30 Roskam - Re-DO REPEAT and shifting dataset names and dates.SPS .<br><br> *&nbsp; In response to posting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br> *&nbsp; Date:&nbsp;&nbsp;&nbsp;&nbsp; Sat, 30 Jan 2010 02:26:43 -0800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br> *&nbsp; From:&nbsp;&nbsp;&nbsp;&nbsp; Albert-Jan Roskam &lt;fomcl@yahoo.com&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br> *&nbsp; Subject:&nbsp; Re: DO REPEAT and shifting dataset names and dates&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br> *&nbsp; Comments: To: AlanKrinsky &lt;Alan.Krinsky@UMASSMEMORIAL.ORG&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br> *&nbsp; To:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPSSX-L@LISTSERV.UGA.EDU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br><br> FILE HANDLE File1<br> &nbsp;/NAME='C:\Documents and Settings\Richard\My Documents'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '\Temporary\SPSS\'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '2010-01-30 Roskam - '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Re-DO REPEAT and shifting dataset names and dates.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' - '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'LOOP.SAV'.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br><br> FILE HANDLE File2<br> &nbsp;/NAME='C:\Documents and Settings\Richard\My Documents'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '\Temporary\SPSS\'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '2010-01-30 Roskam - '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Re-DO REPEAT and shifting dataset names and dates.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' - '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'DO REPEAT.SAV'.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br><br> NEW FILE.<br> DATA LIST LIST/<br> &nbsp;&nbsp; Alphabet Serial1 Serial2 Serial3 Letter1 Letter2 Letter3<br> &nbsp;&nbsp; (A5,&nbsp;&nbsp;&nbsp;&nbsp; F2,&nbsp;&nbsp;&nbsp;&nbsp; F2,&nbsp;&nbsp;&nbsp;&nbsp; F2,&nbsp;&nbsp;&nbsp;&nbsp; A7,&nbsp;&nbsp;&nbsp;&nbsp; A7,&nbsp;&nbsp;&nbsp;&nbsp; A7).<br> BEGIN DATA<br> &nbsp;&nbsp; Roman&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C<br> &nbsp;&nbsp; Greek&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Gamma&nbsp;&nbsp; Delta&nbsp;&nbsp; Epsilon<br> END DATA.<br> DATASET NAME RolledUp.<br> LIST.<br><br> *&nbsp; XSAVE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... .<br> *&nbsp; ...&nbsp;&nbsp; XSAVE inside LOOP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... .<br> DATASET ACTIVATE RolledUp WINDOW=ASIS.<br> DATASET COPY&nbsp;&nbsp;&nbsp;&nbsp; WithLoop WINDOW=FRONT.<br> DATASET ACTIVATE WithLoop WINDOW=FRONT.<br><br> VECTOR&nbsp; Nbr=Serial1 TO Serial3<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /Ltr=Letter1 TO Letter3.<br><br> NUMERIC Order&nbsp; (F2).<br> STRING&nbsp; Text&nbsp;&nbsp; (A7).<br><br> LOOP&nbsp; #Idx = 1 TO 3.<br> .&nbsp; COMPUTE Order = Nbr(#Idx).<br> .&nbsp; COMPUTE Text&nbsp; = Ltr(#Idx).<br> .&nbsp; XSAVE&nbsp;&nbsp; OUTFILE=File1<br> &nbsp;&nbsp; /KEEP=&nbsp; Alphabet Order Text.<br> END LOOP.<br> EXECUTE /* ---&nbsp; One of the case where it's needed&nbsp; --- */.<br><br> GET FILE=File1.<br> LIST.<br><br> *&nbsp; ...&nbsp;&nbsp; XSAVE inside DO REPEAT&nbsp;&nbsp; ... .<br> DATASET ACTIVATE RolledUp WINDOW=ASIS.<br> DATASET COPY&nbsp;&nbsp;&nbsp;&nbsp; WithRpt&nbsp; WINDOW=FRONT.<br> DATASET ACTIVATE WithRpt&nbsp; WINDOW=FRONT.<br><br> NUMERIC Order&nbsp; (F2).<br> STRING&nbsp; Text&nbsp;&nbsp; (A7).<br><br> DO REPEAT<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nbr=Serial1 TO Serial3<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /Ltr=Letter1 TO Letter3.<br> .&nbsp; COMPUTE Order = Nbr.<br> .&nbsp; COMPUTE Text&nbsp; = Ltr.<br> .&nbsp; XSAVE&nbsp;&nbsp; OUTFILE=File2<br> &nbsp;&nbsp; /KEEP=&nbsp; Alphabet Order Text.<br> END REPEAT.<br><br> EXECUTE /* ---&nbsp; One of the cases where it's needed&nbsp; --- */.<br><br> GET FILE=File2.<br> LIST.<br><br> *&nbsp; Nested DO REPEAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... .<br><br> NEW FILE.<br> INPUT PROGRAM.<br><br> NUMERIC A B C D E (F2).<br> RECODE&nbsp; A B C D E (ELSE=1).<br><br> END CASE.<br> END FILE.<br> END INPUT PROGRAM.<br><br> DO REPEAT FACTOR = 2 3 5.<br> .&nbsp; DO REPEAT NUMBER = A TO E.<br> .&nbsp;&nbsp;&nbsp;&nbsp; COMPUTE NUMBER = NUMBER * FACTOR.<br> .&nbsp; END REPEAT.<br> END REPEAT.<br><br> LIST.<br><br> *&nbsp; DO REPEAT within LOOP is documented to work&nbsp; --&nbsp;&nbsp;&nbsp;&nbsp; ... .<br> *&nbsp; see Command Syntax Reference article on DO REPEAT&nbsp;&nbsp; ... .<br><br> <br> *&nbsp; LOOP within DO REPEAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... .<br><br> NEW FILE.<br> INPUT PROGRAM.<br><br> NUMERIC A B C D E (F2).<br> RECODE&nbsp; A B C D E (ELSE=1).<br><br> END CASE.<br> END FILE.<br> END INPUT PROGRAM.<br><br> VECTOR NUMBER=A TO E.<br><br> DO REPEAT FACTOR = 2 3 5.<br> .&nbsp; LOOP #IDX = 1 TO 5.<br> .&nbsp;&nbsp;&nbsp;&nbsp; COMPUTE NUMBER(#IDX) = NUMBER(#IDX) * FACTOR.<br> .&nbsp; END LOOP..<br> END REPEAT.<br><br> LIST.<br><br> *&nbsp; Declarative statements within DO REPEAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... ,<br><br> NEW FILE.<br> INPUT PROGRAM.<br> .&nbsp; NUMERIC RecdNum (F2).<br> .&nbsp; COMPUTE RecdNum=1.<br> .&nbsp; END CASE.<br> END FILE.<br> END INPUT PROGRAM.<br><br> DO REPEAT NewVar = V1 TO V5.<br> .&nbsp; NUMERIC NewVar (F2).<br> END REPEAT.<br><br> LIST.</font> </body> <br> </html>

===================== To manage your subscription to SPSSX-L, send a message to LISTSERV@LISTSERV.UGA.EDU (not to SPSSX-L), with no body text except the command. To leave the list, send the command SIGNOFF SPSSX-L For a list of commands to manage subscriptions, send the command INFO REFCARD


Back to: Top of message | Previous page | Main SPSSX-L page