@femiajumobi1 wrote:
@Patrick
This found the variables but ascribed zero to all of them
data want;
set have;
if diagnoses in: ('J45.10', 'J45.20', 'J45.30') then AI=1;
else AI=0;
run;
I switched it with AI =0 if any of the variables are found (see below) and it correctly ascribed 1 to all of them. It's weird! I want to ascribe AI=1 in any cell it finds 'J45.10', 'J45.20', 'J45.30' and AI=0 otherwise
@femiajumobi1
I can't replicate what you describe. Please provide representative sample data!
Just extend below HAVE table with additional sample data where things aren't working as expected and show us the desired result.
Below code return AI=1 for strings where one of the substring in the IN clause are found.
data have;
infile datalines truncover;
input diagnoses $200.;
datalines4;
J45.10 throat ache, uncomplicated ; S81.011A Laceration without foreign body, right knee, initial encounter ; S50.311A Abrasion of right elbow, initial encounter
X45.10 throat ache, uncomplicated ; S81.011A Laceration without foreign body, right knee, initial encounter ; S50.311A Abrasion of right elbow, initial encounter
;;;;
data want;
set have;
if diagnoses in: ('J45.10', 'J45.20', 'J45.30') then AI=1;
else AI=0;
run;
proc print data=want(keep=ai);
run;
I have over 14,000 observations with a column 'diagnoses' which has text information beyond these alphanumeric variables: 'J45.10', 'J45.20', 'J45.30' and I wish to find
If the number of ICD codes you want to search for becomes too big then some approach using a lookup table might be better suited. But we can't know if you don't tell us.
... View more