I have a deck of cards using the following data step.
How can I mix-up the cards in the dataset so that I can play 21?
data cards(keep=card suit c2);
do c1= 1 to 4;
if c1=1 then suit='C';
else if c1=2 then suit='D';
else if c1=3 then suit='H';
else if c1=4 then suit='S';
do c2= 1 to 13;
card=c2||suit;
output;
end;
end;
run;
data cards;
length card $3;
do suit = "C", "D", "H", "S";
do c2= 1 to 13;
card=cats(c2,suit);
output;
end;
end;
run;
proc sql;
create table shuffled as select * from cards order by rand("uniform");
quit;
data cards;
length card $3;
do suit = "C", "D", "H", "S";
do c2= 1 to 13;
card=cats(c2,suit);
output;
end;
end;
run;
proc sql;
create table shuffled as select * from cards order by rand("uniform");
quit;
PG
🚨 Early Bird Rate Extended!
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Lock in the best rate now before the price increases on April 1.