DATA Step, Macro, Functions and more

SAS prxmatch and Replace Next String

Reply
Super Contributor
Posts: 326

SAS prxmatch and Replace Next String

I have a free text column which I need to delete and replace some sections. I'm able to use prxchange for those with known structures such as employee id, postal code. But I also need to mask names and other sensitive information

 

Input Free Text:

Name: John Doe

DOB: 1991-10-10

 

Output Cleansed Text:

Name: XXX

DOB: YYYY-MM-DD

 

Is there a way I can use prxmatch then if it matches a portion I will manipulate the succeeding string next to it?

 

 

Super User
Posts: 7,852

Re: SAS prxmatch and Replace Next String

My first action would be to parse the free text into dataset variables, so I'd have a dataset with separate columns like

data have;
infile cards dlm=',' truncover;
input name :$20. dob :yymmdd10.;
format dob yymmddd10.;
cards;
John Doe,1991-10-10
John Miller,2001-01-30
;
run;

Then it's very simple

data want;
set have;
if index(name,'John Doe') > 0
then do;
  name = 'XXX';
  dob = .;
end;
run;
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Super Contributor
Posts: 326

Re: SAS prxmatch and Replace Next String

Posted in reply to KurtBremser

Thanks for your inputs. However, my data won't be clean as such. The fields that I need to cleanse and mask will be stored in a single field (example would be this response. everything will be in one field) which is a bit challenge for SAS unlike if I do it in either python or R where I can tokenize all the strings in the field. I'm just trying to weigh in options on which tool would be the most suitable to use for my requirement.

 

Cheers!

Ask a Question
Discussion stats
  • 2 replies
  • 143 views
  • 0 likes
  • 2 in conversation