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
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.