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(¯o_var,2);
run;
The code above gives me the following error:
1435 data want1;
1436 set have;
1437 var2=scan(¯o_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
Change:
var2=scan(¯o_var,2);
To:
var2=scan("¯o_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.
Change:
var2=scan(¯o_var,2);
To:
var2=scan("¯o_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.
Thanks a lot!
Best
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.