02-20-2015 02:40 PM
I have a dataset as such:
pat_ID Code_1 Code_2 Code_3 Code_4 Code_5
B 121 111 155
C 155 123 111 111
E 111 123 155 666
F 332 111
I have a proc format specifying the range of values that I want to match Code_1 = 1, or else = 0 and then I would sort the observations with Code_1 matching my proc format in one table and the ones that don't match in another (in my example using match as the variable). Is there a method to write an array or loop to check for each range of codes I want against Code_2, Code_3? The condition would be say If CODE_1 = '111' OR Code_2 = '111' not AND.
value $ match
'111-123' = 1
155 = 1;
other = 0'
02-20-2015 03:56 PM
First you may need to check whether the format does what you expect as shown in your post. Did you mean to have a range of values '111' - '123' or only looking for the long string 111-123?
I suspect the first. If so value of '12' and '1200' will be formatted as 1.
Also you have something missing such as a ; to end the format (possibly a typo with the single quote) and the existing ; before the other should not be there. Also there should not be a space between the $ the name of the format.
I think you might want display what you expect the output to look like.
If CODE_1 = '111' OR Code_2 = '111'
is perfectly acceptable SAS code.