Дублирующиеся строки внутри одной ячейки. SAS Base/Macro

Фиксирую на будущее ещё одно решение рабочей задачи.

Задача следующая: в таблице в одном из столбцов значения сформированы текстом с переносами строк. И в этом тексте в пределах одного значения строки могут повторяться. И эти дубликаты нужно убрать. Не исключаю, что поиски решения привели меня к написанию велосипеда, но если кто знает вариант получше - не держите в себе, поделитесь.

Схематичный исходник и пояснения - под катом:
/* === Начальные данные === */

data in; /* Здесь только одно значение, одна строка */
a=catx('0A'x,'abc','abcd','abc','abce','abc');
run;

/* === Основная магия тут === */
data out(drop=i j e:);
set in;
array e{5} $ 100;
do i=1 to 5 by 1;
e{i}=SCAN(a, i, '0A'x); /* Берём i-ю строку из переменной a и помещаем в i-й элемент массива e */
if i>1 then do; /* А вот тут интересно. Если это вторая строка и далее, то мы пробегаем предыдущие строки и сравниваем с ними текущую строку */
do j=1 to i-1 by 1;
if e{i} eq e{j} then e{i}=" "; /* И если она уже была - нещадно вымарываем */
end;
end;
end;

a="";

do i=1 to 5 by 1; /* А теперь собираем значение переменной заново, соединяя строки через перевод строки */
if not missing(e{i}) then a=catx('0A'x,a,e{i});
end;
run;


Результат работы будет выглядеть вот так:

WORK.IN

#a
1abc
abcd
abc
abce
abc

WORK.OUT

#a
1abc
abcd
abce