I have this type of data:
125628,59000,.,.,.,.
.,50000,.,.,.,.
using
prx=prxparse("s/.,[., ]*/, /");
I get
12562, 5900, , , , .
, 5000, , , , .
I would like to have
125628,59000
50000
Well, perl I can't help you with, however its a simple thing in Base SAS code to do:
data have;
tmp="125628,59000,.,.,.,."; output;
tmp=".,50000,.,.,.,."; output;
run;
data want (drop=i);
length tmp2 $200;
set have;
do i=1 to countw(tmp,",");
if scan(tmp,i,",") ne "." then tmp2=catx(',',tmp2,scan(tmp,i,","));
end;
run;
Well, perl I can't help you with, however its a simple thing in Base SAS code to do:
data have;
tmp="125628,59000,.,.,.,."; output;
tmp=".,50000,.,.,.,."; output;
run;
data want (drop=i);
length tmp2 $200;
set have;
do i=1 to countw(tmp,",");
if scan(tmp,i,",") ne "." then tmp2=catx(',',tmp2,scan(tmp,i,","));
end;
run;
not fully tested:
data want;
set have;
tmp2 = transtrn(tmp, ',.', ' ');
tmp2 = strip(transtrn(tmp2, '.,', ' '));
run;
With a RegEx:
data t;
STR=prxchange('s/,\./ /', -1, '125628,59000,.,.,.,.');
putlog STR=;
run;
STR=125628,59000
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.