You can avoid all this code by using the SAS Data Quality functions and a SAS Quality Knowledge Base, as it has been specifically designed for this particular use case
For standardizing Organizations:
%DQLOAD(DQLOCALE=(ENUSA), DQSETUPLOC='/opt/sas/spre/home/share/refdata/qkb/ci/31');
data _null_;
length org stdOrg $ 50;
input org $char50.;
stdOrg=dqStandardize(org, 'Name');
put 'Name:' @10 org /
'StdName:' @10 stdOrg /;
datalines;
coca cola limited
coca cola ltd
;
run;
Name: coca cola limited
StdName: Coca Cola, Limited
Name: coca cola ltd
StdName: Coca Cola, Ltd
and parse
data _null_;
parsedValue=dqParse('Coca Cola, Ltd', 'ORGANIZATION', 'ENUSA');
name=dqParseTokenGet(parsedValue, 'Name', 'ORGANIZATION', 'ENUSA');
legal=dqParseTokenGet(parsedValue, 'Legal Form', 'ORGANIZATION', 'ENUSA');
put 'Name:' @10 name /
'Legal:' @10 legal /;
run;
1 %studio_hide_wrapper;
82 %DQLOAD(DQLOCALE=(ENUSA), DQSETUPLOC='/opt/sas/spre/home/share/refdata/qkb/ci/31');
NOTE: DQLOAD macro beginning.
NOTE: DQLOAD macro ending.
83
84 data _null_;
85 parsedValue=dqParse('Coca Cola, Ltd', 'ORGANIZATION', 'ENUSA');
86 name=dqParseTokenGet(parsedValue, 'Name', 'ORGANIZATION', 'ENUSA');
87 legal=dqParseTokenGet(parsedValue, 'Legal Form', 'ORGANIZATION', 'ENUSA');
88 put 'Name:' @10 name /
89 'Legal:' @10 legal /;
90 run;
Name: Coca Cola
Legal: Ltd
Hope that help
... View more