DATA Step, Macro, Functions and more

macro variable + scan function=ERROR 388-185: Expecting an arithmetic operator

Accepted Solution Solved
Reply
Contributor
Posts: 60
Accepted Solution

macro variable + scan function=ERROR 388-185: Expecting an arithmetic operator

What am I doing wrong with the code below?

Best,

Chris

data have;

input var $1.;

datalines;

a

a

b

c

d

;

run;

data want;

input var $ var2 $;

cards;

a b

a b

b b

c b

d b

;

run;

proc sql noprint;

select distinct var into :macro_var separated by " "

from have;

quit;

data want;

set have;

var2=scan(&macro_var,2);

run;

The code above gives me the following error:

1435  data want1;

1436  set have;

1437  var2=scan(&macro_var,2);

NOTE: Line generated by the macro variable "MACRO_VAR".

1     a b c d

        -

        388

        76

ERROR 388-185: Expecting an arithmetic operator.

ERROR 76-322: Syntax error, statement will be ignored.

1438  run;

NOTE: The SAS System stopped processing this step because of errors.

WARNING: The data set WORK.WANT1 may be incomplete.  When this step was stopped there were 0

         observations and 2 variables.

NOTE: DATA statement used (Total process time):

      real time           0.01 seconds

      cpu time            0.01 seconds


Accepted Solutions
Solution
‎04-13-2015 10:32 AM
Super User
Super User
Posts: 7,942

Re: macro variable + scan function=ERROR 388-185: Expecting an arithmetic operator

Posted in reply to chris2377

Change:

var2=scan(&macro_var,2);


To:

var2=scan("&macro_var.",2);


Remember that in this instance you are using scan as a function in a datastep, so parameter one needs to be a string - i.e. quoted.

View solution in original post


All Replies
Solution
‎04-13-2015 10:32 AM
Super User
Super User
Posts: 7,942

Re: macro variable + scan function=ERROR 388-185: Expecting an arithmetic operator

Posted in reply to chris2377

Change:

var2=scan(&macro_var,2);


To:

var2=scan("&macro_var.",2);


Remember that in this instance you are using scan as a function in a datastep, so parameter one needs to be a string - i.e. quoted.

Contributor
Posts: 60

Re: macro variable + scan function=ERROR 388-185: Expecting an arithmetic operator

Posted in reply to chris2377

Thanks a lot!

Best

🔒 This topic is solved and locked.

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

Discussion stats
  • 2 replies
  • 2552 views
  • 0 likes
  • 2 in conversation