I applied the code provided in this topic to convert character variable to numeric, it works quite well for individual data sets.But when I apply the code in macro, I meet problems. When I use "proc sql" to find out character variables in data sets, SAS tells me that there are no character variables in the data sets but actually there are some. I don't know why, so could you kindly help me out?
%macro sic2_state(i,j);
data &j&i;
set &j&i;
run;
proc sql;
create table char_cur&j&i as
select name from dictionary.columns where libname='WORK' and MEMNAME="&j&i" and type='char';
quit;
%mend;
%sic2_state(1999,Connecticut)
%sic2_state(1999,Florida)
%sic2_state(1999,Indiana)
%sic2_state(1999,Tennessee)
Thanks a lot! Cheers, Owen
Within dictionary.columns, all the MEMNAME values are stored in uppercase. So the initial hurdle to overcome is to change the MEMNAME criterion to:
and memname = upcase("&j&i")
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.