Apply function to Macro Variable

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 7
Accepted Solution

Apply function to Macro Variable

I have a macro variable and the value has a space in it. I want to keep this but also create a new variable that removes the space.

 

Here's my example code:

 

 

%let var = A B;

%let new_var = compress(&dept);
%put &new_var;

This makes new_var equal to the string "compress(&dept)" but I want new_var to equal "AB."


Accepted Solutions
Solution
‎06-14-2018 04:44 PM
Super User
Posts: 23,677

Re: Apply function to Macro Variable

When using functions in a %LET you need to use %SYSFUNC() to tell SAS it's not text, but a function. 

 

%let dept = A B;

%let new_var = %sysfunc(compress(&dept));
%put &new_var;

 


@tedway wrote:

I have a macro variable and the value has a space in it. I want to keep this but also create a new variable that removes the space.

 

Here's my example code:

 

 

%let var = A B;

%let new_var = compress(&dept);
%put &new_var;

This makes new_var equal to the string "compress(&dept)" but I want new_var to equal "AB."


 

View solution in original post


All Replies
Solution
‎06-14-2018 04:44 PM
Super User
Posts: 23,677

Re: Apply function to Macro Variable

When using functions in a %LET you need to use %SYSFUNC() to tell SAS it's not text, but a function. 

 

%let dept = A B;

%let new_var = %sysfunc(compress(&dept));
%put &new_var;

 


@tedway wrote:

I have a macro variable and the value has a space in it. I want to keep this but also create a new variable that removes the space.

 

Here's my example code:

 

 

%let var = A B;

%let new_var = compress(&dept);
%put &new_var;

This makes new_var equal to the string "compress(&dept)" but I want new_var to equal "AB."


 

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 82 views
  • 1 like
  • 2 in conversation