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
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.