Hello everybody.
I would like to make 100 string variables card1-card100 so that card1=001... card10=010...card100=100.
Ideally a function that justifies right 'i' with '0' as fiiler character should be used. I tried right() but couldn't make it work.
What I then tried was
array card{100} card1-card100;
do i=1 to 100;
if i in (1:9) then card{i}='00'||i;
if i in (10:99) then card{i}='0'||i;
if i=100 then card{i}='100';
end;
but this won't work either.
Any ideas?
Thanks in advance.
P.S. I am on SAS 9.4
data;
array card{100} $3 card1-card100;
do i = 1 to 100;
card{i} = put(i, z3.);
put card{i};
end;
run;
Use the Zw.d format.
Hi Tim.
I use
array card{100} card1-card100;
do i=1 to 100;
card{i}=put(i,z3.);
end;
but it gives card1=1, card2=2, ..., card100=100,
not card1=001, card2=002, ..., card100=100,
data;
array card{100} $3 card1-card100;
do i = 1 to 100;
card{i} = put(i, z3.);
put card{i};
end;
run;
Thanks again Tim.
It even worked as
array card{100} $ card1-card100;
do i=1 to 100;
card{i}=put(i,z3.);
end;
$ was the missing part..
Kind regards.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.
Find more tutorials on the SAS Users YouTube channel.