Any leads on macro program to repeat the value for 'n' times? Assume I have the macro variables called 'name' and 'n'. If the value is 'David' and '100' then I want the name to print 100 times in the log.
Desired Output: 100 times value of name should be printed.
David
David
.....
David
Bizarre request. I get the feeling there's a lot more you haven't told us ... however a very simple do-loop works
%let name=David;
%let n=100;
%macro do_this;
%do i=1 %to &n;
%put &name;
%end;
%mend;
%do_this
EDIT:
Sorry, off-by-one error below. I hate that the developer of REPEAT() thought it should return the first argument n+1 times. So to have David appear 100 times, you need:
%put %sysfunc(repeat(&name,&n-1)) ;
There is a REPEAT function, so you can do it without a macro:
%let name=David ;
%let n=100 ;
%put %sysfunc(repeat(&name,&n)) ;
The N provided to REPEAT() is the number of EXTRA copies to create. So subtract one.
%put %sysfunc(repeat(&name,&n-1)) ;
Thanks Tom, I only remembered that while I finished my breakfast. : )
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.