Самое простое решение этой проблемы - которое имеет много возможных - это использовать набор данных from / to в качестве таблицы перевода.
Кстати, это не тривиальная проблема; это довольно сложно, когда у вас есть много возможных изменений. Вы также получите некоторые ложные срабатывания, когда вы измените что-то, что не должно было быть изменено, если у вас нет очень четко определенного текста (почти наверняка у вас нет).
Но в конечном итоге вы можете попытаться сделать что-то вроде этого:
data want;
set have; *your address dataset;
do _n_ = 1 to nobs_trans;
set trans point=_n_ nobs=nobs_trans; *your from/to dataset;
address = tranwrd(address,from,to);
end;
run;
Это не совсем правильно, но это скелет того, что вы хотите сделать. Это также совсем не быстро ; Вы, вероятно, захотите сделать что-то быстрее, и если вы хотите сделать это, вам нужно провести исследование альтернативных подходов к этому алгоритму.