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

May somebody help me with SAS syntax. 

 
I would like to create a list
 
%let listVars = a1|a2|a3|a4|a5;
 
OR a dataset
 
dataset myListVars;
input item $32.;
dataline;
a1
a2
a3
a4
a5
;
 
How can I do it without listing ALL names. Is it possible to do something like: 
 
%let listVars = a1 – a5;
 
OR 
dataset myListVars;
input item $32.;
dataline;
a1 - a5
;
 
Thank you
 
Julia
1 ACCEPTED SOLUTION

Accepted Solutions
FreelanceReinh
Jade | Level 19

Once you have the dataset, creating the macro variable is easy, too:

data myListVars;
length item $32;
do _n_=1 to 5;
  item=cats('a',_n_);
  output;
end;
run;

proc sql noprint;
select *
into :listvars separated by '|'
from myListVars;
quit;

View solution in original post

6 REPLIES 6
Reeza
Super User

What are you planning to use this for down the line?

 

You could use a loop, but there's probably better ways to do whatever you're trying to do is my guess.

data want;
     do i=1 to 99;
          Item=catt("A", put(i, z2.));
          output;
     end;
run;

 

DanZ
Obsidian | Level 7

Are you trying to put a list of variable names from a table that already exists into a macro variable? Or, are you trying to create a table with a list of variable names?

FreelanceReinh
Jade | Level 19

Once you have the dataset, creating the macro variable is easy, too:

data myListVars;
length item $32;
do _n_=1 to 5;
  item=cats('a',_n_);
  output;
end;
run;

proc sql noprint;
select *
into :listvars separated by '|'
from myListVars;
quit;
braverju
Obsidian | Level 7

Thank you very much. This is exactly what I need. I just didn't know the first part. 

FreelanceReinh
Jade | Level 19

You're welcome. But if you only need the macro variable, you can get it even more easily:

data _null_;
array x[5] (1:5);
call symputx('listvars', 'a'||catx('|a', of x:));
run;

 

braverju
Obsidian | Level 7

Thank you! Even better!

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 6 replies
  • 2006 views
  • 3 likes
  • 4 in conversation