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

Hello,

 

I have a data table that I need to create based off another table.  My original table looks like this:

TEXT LCNT
ABC   5
DEF   2
GHI   12      

I need to turn that into

ABC_1

ABC_2

ABC_3

ABC_4

ABC_5

DEF_1

DEF_2

GHI_1

GHI_2

GHI_3

GHI_4

GHI_5

GHI_6

GHI_7

GHI_8

GHI_9

GHI_10

GHI_11

GHI_12

 

What would be the best approach to loop using a variable value?  I thought of doing a do loop inside a data step but how can I set the variable value to loop through?

 

1 ACCEPTED SOLUTION

Accepted Solutions
Reeza
Super User

I don't think there's a need for macro variables here.

 

data have;
	input text $ lcnt;
	datalines;
abc 5
def 2
ghi 12
;
run;

data want;
	set have;

	do i=1 to lcnt;
		new_var=catx("_", text, i);
		output;
	end;
	
	keep new_var;
run;

View solution in original post

4 REPLIES 4
PBsas
Obsidian | Level 7

Try this:

data have;

input text $ lcnt;

datalines;

abc 5

def 2

ghi 12

;

run;

 

data _null_;

set have;

call symput("new_cnt",max(lcnt));

run;

 

data want;

set have;

do i=1 to &new_cnt. until(lcnt<=i);

new_var=cats(text,"_",i);

output;

end;

run;

Reeza
Super User

I don't think there's a need for macro variables here.

 

data have;
	input text $ lcnt;
	datalines;
abc 5
def 2
ghi 12
;
run;

data want;
	set have;

	do i=1 to lcnt;
		new_var=catx("_", text, i);
		output;
	end;
	
	keep new_var;
run;
jerry898969
Pyrite | Level 9
Thank you everyone who posted. This solution worked great. Thanks
PGStats
Opal | Level 21
data want;
set have;
do i = 1 to lcnt;
	ID = catx("_", text, lcnt);
	output;
	end;
keep ID;
run;
PG

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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
  • 4 replies
  • 1778 views
  • 2 likes
  • 4 in conversation