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;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.