Date: Fri, 25 Jul 1997 11:34:03 -0500
Reply-To: Girish S Patel <girish.s.patel@CCMAIL.CENSUS.GOV>
Sender: "SAS(r) Discussion" <SAS-L@UGA.CC.UGA.EDU>
From: Girish S Patel <girish.s.patel@CCMAIL.CENSUS.GOV>
Subject: ODD/EVEN NUMBER
Content-Type: text/plain; charset=US-ASCII
Dear SAS Users :
I need assistance to fix my code, i.e., to find out odd/even number
from a given string. The code (along with a Macro) generates absurd
result. Where I could be wrong ????????
/* **CODE STARTS HERE*** ************* ************* */
%MACRO varmk;
%global a;
%let X = &a;
%do i = 1 %to &X;
odd&i = substr(X,&i,1);
even&i = substr(X,&i+1,1);
%end;
%mend varmk;
DATA test;
INFILE CARDS MISSOVER;
INPUT X $;
b=length(x);
call symput('a',b);
CARDS;
73
731
;
RUN;
data test2;
SET TEST;
%varmk
run;
proc print data=test2 label;
Label b='Length of X';
title1 'Find odd/even number from a string';
run;
********************** ********************* *************************
OUTPUT OF THE ABOVE CODE GIVES ME OUTPUT AS SHOWN BELOW :
Find odd/even number from a string
10:19 Friday, July 25, 1997
Length
OBS X of X ODD1 EVEN1 ODD2 EVEN2 ODD3 EVEN3
1 73 2 7 3 3
2 731 3 7 3 3 1 1
*******************************
HOWEVER CORRECT OUTPUT SHOULD BE :
X LENGTH ODD1 EVEN1 ODD2 EVEN2
73 2 7 3 0 0
731 3 7 3 1 0
*********************************
I appreciate your time and interest .......
TIA ...........