Hi,
I have a field with a string of numbers separated by semicolons. I want to check if any of the numbers between the semicolons in this field is a match to what I am looking for. I know I can use "index" or "find," but it may give a false positive if it is a small number within a larger number. For example, if I have a field that contains 123;654;89 and I want to know if it contains '54', I do not want a false positive since 54 is in 654. How can I do this?
Example of what I have:
Obs StrgOfNum
1 934;54;1234
2 123;6542;89
What I want is to know if the number 54 is in any of the observations:
Obs
1 <---Should return a positive output indicated it is in this observations
2 <---Should return a negative output indicating it is not in this observations
data have;
string = '934;54;1234';
found = findw(string, '54');
output;
put _all_;
string = '123;6542;89';
found = findw(string, '54');
output;
put _all_;
run;
data have;
string = '934;54;1234';
found = findw(string, '54');
output;
put _all_;
string = '123;6542;89';
found = findw(string, '54');
output;
put _all_;
run;
Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
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.