Hi all,
I had asked a similar question a while ago but I am running into some issues.
Dataset A contains information on the gene type and list of prescribed drugs associated with it. For example, the prescribed drugs for Gene type ‘a’ are as follows: Afatinib,Neo-Cetuximab,Dacomitinib,Erlotinib,Gefitinib,Lapatinib,Necitumumab,Osimertinib,Panitumumab.
The dataset B contains information on what the patient got prescribed and the dates associated with it. For example, ID#1 got Panitumumab, Binimetinib, and Neo-Cetuximab on different dates.
Therefore, in my merged dataset, I would like to get a row for Panitumimab and a row for Neo-Cetuximab. Further, in case the patient got a drug that is not listed in the drug_list I want it to be missing. For example, ID #6 prescribed drug Idelalisib does not match the drug_list for the specific gene ‘b’. Similar scenario for and ID#7
Here are the datasets and the code I had started using.
data A; informat id 3. date_a mmddyy10. Gene_type $3. Drug_list $200.; input id date_a Gene_type Drug_list; format id 3. date_a mmddyy10. Gene_Type$3. Drug_list $200.; cards; 1 1/2/2018 a Afatinib,Neo-Cetuximab,Dacomitinib,Erlotinib,Gefitinib,Lapatinib,Necitumumab,Osimertinib,Panitumumab 1 2/10/2019 b Cetuximab,Xanitumumab 2 3/3/2019 c Binimetinib,Cetuximab,Cobimetinib,Idelalisib,Panitumumab,Trametinib 3 1/2/2018 d Alpelisib,Everolimus,Temsirolimus 4 2/2/2019 f Ado-trastuzumab,Afatinib,Dacomitinib,Lapatinib,Neratinib,Pertuzumab,Trastuzumab,Trastuzumab-anns,Trastuzumab-dkst,Trastuzumab-dttb,Trastuzumab-pkrb,Trastuzumab-qyyp 4 2/10/2019 e Bosutinib,Dasatinib,Everolimus,Temsirolimus 5 3/3/2019 a Afatinib,Neo-Cetuximab,Dacomitinib,Erlotinib,Gefitinib,Lapatinib,Necitumumab,Osimertinib,Panitumumab 6 1/2/2018 c Binimetinib,Cetuximab,Cobimetinib,Idelalisib,Panitumumab,Trametinib 6 2/2/2019 b Cetuximab,Xanitumumab 7 2/10/2019 d Alpelisib,Everolimus,Temsirolimus 7 3/10/2019 b Cetuximab,Xanitumumab ;;; proc sort; by id; run;
data B; informat id 3. date_b mmddyy10. Drug $20.; input id date_b Drug; format id 3. date_b mmddyy10. Drug $200.; cards; 1 2/01/2018 Panitumumab 1 3/02/2019 Binimetinib 1 3/28/2019 Neo-Cetuximab 2 3/23/2019 Trametinib 2 3/25/2019 Temsirolimus 3 2/01/2018 Alpelisib 5 3/21/2019 Dacomitinib 4 3/01/2019 Everolimus 4 4/01/2019 Cobimetinib 4 5/01/2019 Ado-trastuzumab 6 1/17/2018 Idelalisib 7 3/02/2019 Temsirolimus 7 4/01/2019 Binimetinib ;;;
Data Want:
ID
Date_a
Gene_type
Drug_list
Drug
Date_b
1
1/2/2018
a
Afatinib,Neo-Cetuximab,Dacomitinib,Erlotinib,Gefitinib,Lapatinib,Necitumumab,Osimertinib,Panitumumab
Panitumumab
2/1/2018
1
1/2/2018
a
Afatinib,Neo-Cetuximab,Dacomitinib,Erlotinib,Gefitinib,Lapatinib,Necitumumab,Osimertinib,Panitumumab
Neo-Cetuximab
3/28/2019
1
2/10/2019
b
Cetuximab,Xanitumumab
2
3/3/2019
c
Binimetinib,Cetuximab,Cobimetinib,Idelalisib,Panitumumab,Trametinib
Trametinib
3/23/2019
3
1/2/2018
d
Alpelisib,Everolimus,Temsirolimus
Alpelisib
2/1/2018
4
2/2/2019
f
Ado-trastuzumab,Afatinib,Dacomitinib,Lapatinib,Neratinib,Pertuzumab,Trastuzumab,Trastuzumab-anns,Trastuzumab-dkst,Trastuzumab-dttb
Ado-trastuzumab
5/1/2019
4
2/10/2019
e
Bosutinib,Dasatinib,Everolimus,Temsirolimus
Everolimus
3/1/2019
5
3/3/2019
a
Afatinib,Neo-Cetuximab,Dacomitinib,Erlotinib,Gefitinib,Lapatinib,Necitumumab,Osimertinib,Panitumumab
Dacomitinib
3/21/2019
6
1/2/2018
c
Binimetinib,Cetuximab,Cobimetinib,Idelalisib,Panitumumab,Trametinib
Idelalisib
1/17/2018
6
2/2/2019
b
Cetuximab,Xanitumumab
7
2/10/2019
d
Alpelisib,Everolimus,Temsirolimus
Temsirolimus
3/2/2019
7
3/10/2019
b
Cetuximab,Xanitumumab
Proc sql; Create table c2 as select a.*, b.Drug,b.Date_b from a a join b b on a.id=b.id and findw( a.drug_list,strip(b.drug),',') > 0 and (b.date_b); Quit;
... View more