BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Kiteulf
Quartz | Level 8

 

 

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

1 ACCEPTED SOLUTION

Accepted Solutions
RW9
Diamond | Level 26 RW9
Diamond | Level 26

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;
  

View solution in original post

3 REPLIES 3
RW9
Diamond | Level 26 RW9
Diamond | Level 26

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;
  
andreas_lds
Jade | Level 19

not fully tested:

data want;
   set have;
   tmp2 = transtrn(tmp, ',.', ' ');
   tmp2 = strip(transtrn(tmp2, '.,', ' '));
run;
ChrisNZ
Tourmaline | Level 20

With a RegEx:

data t; 
  STR=prxchange('s/,\./ /', -1, '125628,59000,.,.,.,.');
  putlog STR=;
run;

STR=125628,59000

 

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1310 views
  • 0 likes
  • 4 in conversation