это должно работать с циклом do
data names_final;
set names;
do _n_ = 1 to countw(Y,' ');
if _n_ = 1 then name =scan(Y,1);
else name = catx(' ', name, cats(first(scan(y,_n_)),'.'));
end;
run;
, вы также можете сделать
data names_final;
set names;
name = cats(catx(' ', scan(y,1), catx('. ', first(scan(y,2)),first(scan(y,3) ))),'.');
run;