06-01-2018 01:14 PM
Your question requires more details before experts can help. Can you revise your question to include more information?
Review this checklist:
To edit your original message, select the "blue gear" icon at the top of the message and select Edit Message. From there you can adjust the title and add more details to the body of the message. Or, simply reply to this message with any additional information you can supply.
SAS experts are eager to help -- help them by providing as much detail as you can.
This prewritten response was triggered for you by fellow SAS Support Communities member @Reeza.
06-01-2018 01:36 PM
You need to provide some more information on what data you have.
If you have a table with diagnosis and another table with there codes then a simple left join works.
data D_id; infile datalines dlm=',' missover; input id diagnosis $25.; datalines; 101,mood disorders 102,sleep disorders ; run; data have; infile datalines dlm=',' missover; input patient diagnosis $25.; datalines ; 1,mood disorders 2,mood disorders 3,sleep disorders 4,sleep disorders ; run; proc sql; create table want as select a.*,b.id from have a left join d_id b on a.diagnosis=b.diagnosis ; quit;
06-01-2018 03:45 PM
And, another approach is to use a FORMAT for a table lookup. In the example below, the PROC FORMAT was hardcoded, but you can build the format from a SAS dataset, too.
In this example, the value of the DIAGCODE variable will come from the $dgcode user defined format. This is another way to do a table lookup without doing a merge or a join.