I am trying to read large number of files. Here i am using this variable topfile to add values everytime a file is read and add it as a column in my final dataset.
%if %sysfunc(exist(mv.movers_signals_all))= 0 %then %do;
/*%local topfile; */
%let %topfile=1;
%end;
%else %do;
%let topfile=%eval(&topfile+1)
proc sql;
select max(topfile) into :topfile
from mv.movers_signals_all;
quit;
%end;
%put &topfile;
proc sql;
create table mv.moversdata2_&filen. as
select "&filen" as filedate, "%topfile" as topfile,*
from mv.moversdata_&filen.;
quit;
I am trying to read large number of files. Each file has about 50k observations. I want to differentiate between files and Here i am using this variable "topfile" to add values everytime a file is read and add it as a column in my final dataset. But while trying to add values in that macro variable, i am getting this error.
ERROR: Expression using addition (+ ) requires numeric types.
Make sure you know when to use & and % in macro expressions. I see two syntax errors. They should be:
%let topfile=1;
and
select "&filen" as filedate, "&topfile" as topfile,*
PG
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 the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.