Date: Mon, 28 Jun 2004 15:06:22 -0400
Reply-To: Jim Groeneveld <jim.groeneveld@VITATRON.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Jim Groeneveld <jim.groeneveld@VITATRON.COM>
Subject: Re: value with an ampersand
Hi Chris,
Something like (*untested*):
DATA Test;
LENGTH Value $20;
INPUT Value;
CARDS;
A&C
B&D
Marks&Spencer
;
RUN;
DATA Test;
SET Test END=Last;
CALL SYMPUT ('MacValue' || LEFT(PUT (_N_, BEST12.)), Value);
IF Last THEN CALL SYMPUT ('N', (PUT (_N_, BEST12.));
RUN;
%MACRO Loop;
%LOCAL I;
%DO I = 1 %TO &N;
%LET MacValue&I = %SUPERQ(MacValue&I); %* I hope this resolves &I ! ;
%PUT MacValue&I = &&&MacValue&I;
%END;
%MEND Loop;
%Loop;
Regards - Jim (from home via web).
On Tue, 29 Jun 2004 00:06:22 +0800, christopher
<chris.chan@WEBMININGPRO.COM> wrote:
>Hi Jim,
>There may have more than one records. The %let statement only handle
>one record. How to modify the program in order to handle, say, a
>thousand records.
>
>Thanks,
>chris
>On 28 Jun 04 09:50:30 GMT, jim.groeneveld@VITATRON.COM (Groeneveld,
>Jim) wrote:
>
>>Hi statistics [conjecture@GEOCITIES.COM],
>>
>>How about the following example:
>>
>>DATA Test;
>> LENGTH Value $3;
>> INPUT Value;
>> CARDS;
>>A&C
>>;
>>RUN;
>>
>>DATA Test;
>> SET Test;
>> CALL SYMPUT ('MacValue', Value);
>>RUN;
>>
>>%LET MacValue = %SUPERQ(MacValue);
>>%PUT MacValue = &MacValue;
>>
>>Regards - Jim.
|