I have a macro that I'm using to read in csv files from a folder, which will later append. The macro is reading some columns from certain files as numeric and others as characters. The macro I'm using is this: %macro drive(dir,ext);
%local cnt filrf rc did memcnt name;
%let cnt=0;
%let filrf=mydir;
%let rc=%sysfunc(filename(filrf,&dir));
%let did=%sysfunc(dopen(&filrf));
%if &did ne 0 %then %do;
%let memcnt=%sysfunc(dnum(&did));
%do i=1 %to &memcnt;
%let name=%qscan(%qsysfunc(dread(&did,&i)),-1,.);
%if %qupcase(%qsysfunc(dread(&did,&i))) ne %qupcase(&name) %then %do;
%if %superq(ext) = %superq(name) %then %do;
%let cnt=%eval(&cnt+1);
%put %qsysfunc(dread(&did,&i));
proc import datafile="&dir\%qsysfunc(dread(&did,&i))"
out=ifb&cnt
dbms=csv replace;
guessingrows=max;
example = input(example_new, 6);
drop example;
run;
%end;
%end;
%end;
%end;
%else %put &dir cannot be opened.;
%let rc=%sysfunc(dclose(&did));
%mend drive; I'd like to specify certain columns as either character or numeric in the macro. In the PROC IMPORT section of this datafile is where I've tried to do this but I end up with the error that the statement is not valid or out of proper order.
... View more