DATA Step, Macro, Functions and more

Concat macro variable and place in column

Reply
Occasional Contributor
Posts: 16

Concat macro variable and place in column

Hi all,

I'm trying to create the below concat and dump into a column.  But instead of adding the macro variable into the concat statement and filling down on the column it's creating a new column header and placing that macro variable into it.  Any help is appreciated.  Thanks.  Below is my code:

tmp = (left(trim(put(&var1,2.))))  ||  (left(trim('-'))) ||  (left(trim(put(dateStart,6.))))  || (left(trim('-'))) || (left(trim(put(dateEnd,6.))));

Super User
Super User
Posts: 7,401

Re: Concat macro variable and place in column

Hi,

Would need to see the code in context.  You can compress your code down also by doing:

tmp=catx('-',put(&var1.,2.),put(datestart,6.),put(dateend,6.);

Also note to put the point after macro variable, doesn't normally matter, but its on of those good practice things.

Occasional Contributor
Posts: 16

Re: Concat macro variable and place in column

data test;

length tmp $16;

set newFile;

dateStart= &pStart.;

dateEnd = &pEnd.;

tmp = (left(trim(put(&var1,2.))))  ||  (left(trim('-'))) ||  (left(trim(put(dateStart,6.))))  || (left(trim('-'))) || (left(trim(put(dateEnd,6.))));

run;

Super User
Super User
Posts: 7,401

Re: Concat macro variable and place in column

+1 to Astounding.  Also, try the catx version rather than all the left trim and hyphen combinations.

Super User
Posts: 5,082

Re: Concat macro variable and place in column

Two questions ...

(1) Are you sure?  Because of the LENGTH statement, TMP would be the first variable in TEST.  Are you looking in the right place?

(2) What is the value assigned to &VAR1?

Good luck.

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