DATA Step, Macro, Functions and more

SAS prxmatch and Replace Next String

Super Contributor
Posts: 339

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



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: 10,580

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.;
John Doe,1991-10-10
John Miller,2001-01-30

Then it's very simple

data want;
set have;
if index(name,'John Doe') > 0
then do;
  name = 'XXX';
  dob = .;
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code
Super Contributor
Posts: 339

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.



Ask a Question
Discussion stats
  • 2 replies
  • 2 in conversation