Dear all,
How can I overcome the 'WARNING: Apparent symbolic reference D not resolved.'?
when I using the following code to clean a company name dataset,
%MACRO CompnayNameM(no=,Company_name=);
Data Step3.Datastream_gb_Step8;
Set Step3.Datastream_gb_Step8;
&Company_name._Step8=&Company_name._Step6;
&Company_name._Step8= tranwrd(&Company_name._Step8," A B "," AB ");
&Company_name._Step8= tranwrd(&Company_name._Step8," A CALIFORNIA CORP "," CORP ");
&Company_name._Step8= tranwrd(&Company_name._Step8," A DELAWARE CORP "," CORP ");
&Company_name._Step8= tranwrd(&Company_name._Step8," AKTIEBOLAGET "," AB ");
&Company_name._Step8= tranwrd(&Company_name._Step8," AKTIEBOLAG "," AB ");
&Company_name._Step8= tranwrd(&Company_name._Step8," ACADEMY "," ACAD ");
&Company_name._Step8= tranwrd(&Company_name._Step8," ACTIEN GESELLSCHAFT "," AG ");
&Company_name._Step8= tranwrd(&Company_name._Step8," ACTIENGESELLSCHAFT "," AG ");
&Company_name._Step8= tranwrd(&Company_name._Step8," AKTIEN GESELLSCHAFT "," AG ");
&Company_name._Step8= tranwrd(&Company_name._Step8," AKTIENGESELLSCHAFT "," AG ");
...
&Company_name._Step8=tranwrd(&Company_name._Step8, " RES & DEV ", " R&D ");
&Company_name._Step8=tranwrd(&Company_name._Step8, " RECH & DEV ", " R&D ");
chflag&Company_name.6vs8=(&Company_name._Step8 ne &Company_name._Step6);
run;
data watch&no. (keep=&Company_name. &Company_name._Step6 &Company_name._Step8 GEOGRAPHIC_DESCR_ chflag&Company_name.6vs8);
set Step3.Datastream_gb_Step8;
if chflag&Company_name.6vs8=1;
run;
%MEND CompnayNameM;
%CompnayNameM(no=1,Company_name=NAME)
%CompnayNameM(no=2,Company_name=COMPANY_NAME)
%CompnayNameM(no=3,Company_name=COMPANY_NAME_1)
%CompnayNameM(no=4,Company_name=COMPANY_NAME___SHORT)
%CompnayNameM(no=5,Company_name=PREVIOUS_NAME)
run;
However,
I get
1924 data watch&no. (keep=&Company_name. &Company_name._Step6 &Company_name._Step8 GEOGRAPHIC_DESCR_
1924! chflag&Company_name.6vs8);
1925 set Step3.Datastream_gb_Step8;
1926 if chflag&Company_name.6vs8=1;
1927 run;
1928
1929 %MEND CompnayNameM;
1930
1931 %CompnayNameM(no=1,Company_name=NAME)
WARNING: Apparent symbolic reference D not resolved.
WARNING: Apparent symbolic reference D not resolved.
NOTE: There were 11846 observations read from the data set STEP3.DATASTREAM_GB_STEP8.
NOTE: The data set STEP3.DATASTREAM_GB_STEP8 has 11846 observations and 63 variables.
NOTE: DATA statement used (Total process time):
real time 36.04 seconds
cpu time 11.14 seconds
NOTE: There were 11846 observations read from the data set STEP3.DATASTREAM_GB_STEP8.
NOTE: The data set WORK.WATCH1 has 566 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 11.63 seconds
cpu time 0.61 seconds
1932 %CompnayNameM(no=2,Company_name=COMPANY_NAME)
WARNING: Apparent symbolic reference D not resolved.
WARNING: Apparent symbolic reference D not resolved.
NOTE: There were 11846 observations read from the data set STEP3.DATASTREAM_GB_STEP8.
NOTE: The data set STEP3.DATASTREAM_GB_STEP8 has 11846 observations and 65 variables.
NOTE: DATA statement used (Total process time):
real time 36.76 seconds
cpu time 12.10 seconds
NOTE: There were 11846 observations read from the data set STEP3.DATASTREAM_GB_STEP8.
NOTE: The data set WORK.WATCH2 has 1659 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 12.71 seconds
cpu time 0.70 seconds
Do you know why? and how can I fix it?
thanks for your attention to this matter.
Change code like this: " R&D " to ' R&D ' to stop SAS thinking &D is a macro reference.
Change code like this: " R&D " to ' R&D ' to stop SAS thinking &D is a macro reference.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.