What you showed in the output is this. @mkeintz , @newsas007 please notice this response
data A;
informat id 3. date_a mmddyy10. Drug_list $200.;
input id date_a Drug_list;
format id 3. date_a mmddyy10. Drug_list $200.;
cards;
1 1/2/2018 Afatinib,Cetuximab,Dacomitinib,Erlotinib,Gefitinib,Lapatinib,Necitumumab,Osimertinib,Panitumumab
1 2/10/2019 Cetuximab,Panitumumab
2 3/3/2019 Binimetinib,Cetuximab,Cobimetinib,Idelalisib,Panitumumab,Trametinib
3 1/2/2018 Alpelisib,Everolimus,Temsirolimus
4 2/10/2019 Bosutinib,Dasatinib,Everolimus,Temsirolimus
5 3/3/2019 Afatinib,Cetuximab,Dacomitinib,Erlotinib,Gefitinib,Lapatinib,Necitumumab,Osimertinib,Panitumumab
6 1/2/2018 Binimetinib,Cetuximab,Cobimetinib,Idelalisib,Panitumumab,Trametinib
7 2/10/2019 Alpelisib,Everolimus,Temsirolimus
;;;
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 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
6 1/17/2018 Idelalisib
7 3/02/2019 Temsirolimus
;;;
proc sort; by id; run;
data c;
merge b a;
by id;
if findw( drug_list,strip(drug),',') = 0 then drug_list='';
run;
Which might be wrong as you get this warning in the log
NOTE: MERGE statement has more than one data set with repeats of BY values. NOTE: There were 10 observations read from the data set WORK.B. NOTE: There were 8 observations read from the data set WORK.A. NOTE: The data set WORK.C has 10 observations and 5 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds
instead the result should be
Proc sql;
Create table c2 as select a.date_a,a.drug_list, b.date_b, b.Drug,b.id from a a right join b b
on a.id=b.id and findw( a.drug_list,strip(b.drug),',') > 0 and (b.date_b);
Quit;
date_a
Drug_list
date_b
Drug
id
1/2/2018
Afatinib,Cetuximab,Dacomitinib,Erlotinib,Gefitinib,Lapatinib,Necitumumab,Osimertinib,Panitumumab
2/1/2018
Panitumumab
1
1/2/2018
Afatinib,Cetuximab,Dacomitinib,Erlotinib,Gefitinib,Lapatinib,Necitumumab,Osimertinib,Panitumumab
3/28/2019
Cetuximab
1
2/10/2019
Cetuximab,Panitumumab
2/1/2018
Panitumumab
1
2/10/2019
Cetuximab,Panitumumab
3/28/2019
Cetuximab
1
3/2/2019
Binimetinib
1
3/3/2019
Binimetinib,Cetuximab,Cobimetinib,Idelalisib,Panitumumab,Trametinib
3/23/2019
Trametinib
2
3/25/2019
Temsirolimus
2
1/2/2018
Alpelisib,Everolimus,Temsirolimus
2/1/2018
Alpelisib
3
2/10/2019
Bosutinib,Dasatinib,Everolimus,Temsirolimus
3/1/2019
Everolimus
4
3/3/2019
Afatinib,Cetuximab,Dacomitinib,Erlotinib,Gefitinib,Lapatinib,Necitumumab,Osimertinib,Panitumumab
3/21/2019
Dacomitinib
5
1/2/2018
Binimetinib,Cetuximab,Cobimetinib,Idelalisib,Panitumumab,Trametinib
1/17/2018
Idelalisib
6
2/10/2019
Alpelisib,Everolimus,Temsirolimus
3/2/2019
Temsirolimus
7
... View more