DATA Step, Macro, Functions and more

is there a way to create a macro variable which can further used for concatination

Reply
Occasional Contributor mj5
Occasional Contributor
Posts: 12

is there a way to create a macro variable which can further used for concatination

I am using the below step to check if the variables are not missing than concatenate. can i use these sec1 and sec2 in macro call because i dont know how many sec.. will be  coming later.

any idea?

if SEC1 ne '' and SEC2 ne '' then do;
        sec_r=catx(';', of SEC:);¨
end;
Contributor
Posts: 53

Re: is there a way to create a macro variable which can further used for concatination

I did something like this where I passed all these values as one String in a macro variable separated by ','. Then I count the number of words (countw()) and do a do-loop in which I concat the variables into a new variable.
Contributor
Posts: 53

Re: is there a way to create a macro variable which can further used for concatination

data _null_;
  counter = countw(sec_all, ',');
  do i=1 to counter by 2;
   sec_cat = trim(catt("&sec_at", scan(sec_all, i, ','));
  end;
run;

 

Super User
Super User
Posts: 7,997

Re: is there a way to create a macro variable which can further used for concatination

I am sorry, I don't follow you.  The catx(';',of secSmiley Happy will concatenate all non missing variables with prefix sec together.  I don't see where the need to use macro or check missing comes from?  Please provide good examples - post test data in the form of a datastep and what you expect as output.  Remember macro SAS is not a replacement for Base SAS, and doesn't do anything magical. 

Ask a Question
Discussion stats
  • 3 replies
  • 82 views
  • 0 likes
  • 3 in conversation