BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
zqkal
Obsidian | Level 7

Hi SAS Users, 

 

I have a global macro which contains a list of values in which the order they appear represent the order they should appear in the dataset. 

 

%let values = A, C, D, Z; 

I want to loop through the list and create a dataset similar to this. I want this to be a dynamic dataset that updates itself when a new list is added. 

 

Values order 

A  1

C 2

D 3

Z 4

1 ACCEPTED SOLUTION

Accepted Solutions
novinosrin
Tourmaline | Level 20

%let values = A, C, D, Z; 


data want;
do order=1 to countw("&values",',');
values=scan("&values",order,',');
output;
end;
run;

View solution in original post

1 REPLY 1
novinosrin
Tourmaline | Level 20

%let values = A, C, D, Z; 


data want;
do order=1 to countw("&values",',');
values=scan("&values",order,',');
output;
end;
run;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 814 views
  • 1 like
  • 2 in conversation