Sounds like you want to treat this as if you had two independent datasets.
One dataset with just the variable A. And a second dataset with just the variable B.
So if you really have that mixed_up dataset
data mixed_up;
infile cards dsd dlm='|' truncover;
input A :$20. B :$300. FIND ;
cards;
EDISON|Agan, B. K., Macalino, G. E., Nsouli-Maktabi, H., Wang, X., Gaydos, J. C., Ganesan, A., Kortepeter, M. G., & Sanchez, J. L.|1
AGAN|Masel J, Deiss RG, Wang X, Sanchez JL, Ganesan A, Macalino GE, Gaydos JC, Kortepeter MG, Agan BK|1
WANG|Sakaue T, Dorayappan KDP, Zingarelli R, Khadraoui W, Anbalagan M, Wallbillich J, Bognar B, Wanner R, Cosgrove C, Suarez A, Koga H, Maxwell GL, O'Malley DM, Cohn DE, Selvendiran K.|1
BURGESS|Said Y, Filippatou A, Tran C, Rezavi L, Guo K, Smith MD, Resto Y, Chen JJ, Calabresi PA, Caturegli P, Pittock SJ, Flanagan EP, Sotirchos ES.|1
BURGESS|Yang J, Wang D, Wang W, Wu C, Li C, Shi W, Qian J, Xie F, Shen H, Tang Y.|1
TAYLOR|Yang C, Hou P, Wang D, Wang Z, Duan W, Liu J, Yu S, Fu F, Jin Z.|1
RUSIECKI|Laing ED, Sterling SL, Richard SA, Phogat S, Samuels EC, Epsi NJ, Yan L, Moreno N, Coles C, Mehalko J, Drew M, English C, Chung KK, Clifton GT, Munster VJ, de Wit E, Tribble D, Agan BK, Esposito D, Lanteri C, Mitre E, Burgess TH, Broder CC.|1
TINTLE|Huang H, Rusiecki J, Zhao N, Chen Y, Ma S, Yu H, Ward MH, Udelsman R, Zhang Y.|0
MALDONADO|Brenner AV, Inskip PD, Rusiecki J, Rabkin CS, Engels J, Pfeiffer RM.|1
SIMONS|Rockwell EM, Abernathy HA, Evans LM, Bhowmik R, Giandomenico DA, Salzer JS, Maldonado CJ, Choi YS, Boyce RM.|0
TINTLE|Bettner LF, Peterson RA, Bergstedt DT, Kelmenson LB, Demoruelle MK, Mikuls TR, Edison JD, Parish MC, Feser ML, Frazer-Abel AA, Moss LK, Mahler M, Holers VM, Deane KD.|0
MALDONADO|Bergstedt DT, Tarter WJ, Peterson RA, Feser ML, Parish MC, Striebich CC, Demoruelle MK, Moss L, Bemis EA, Norris JM, Holers VM, Edison JD, Thiele GM, Mikuls TR, Deane KD.|1
BOGGS|Lee JA, Mikuls TR, Deane KD, Sayles HR, Thiele GM, Edison JD, Wagner BD, Feser ML, Moss LK, Kelmenson LB, Robinson WH, Payne JB.|1
SHRIVER|Goff SH, Bergstedt DT, Feser ML, Moss L, Mikuls TR, Edison JD, Holers VM, Martinez-Prat L, Aure MAR, Mahler M, Deane KD.|1
|Ezekwe EAD Jr, Weskamp AL, Rahim R, Makiya MA, Wetzler L, Ware JM, Nelson C, Castillo PA, Riley CA, Brown T, Penrod L, Constantine GM, Khoury P, Boggs NA, Klion AD.|
|Lee JY, Shi T, Petyuk VA, Schepmoes AA, Fillmore TL, Wang YT, Cardoni W, Coppit G, Srivastava S, Goodman JF, Shriver CD, Liu T, Rodland KD.|
|Madda R, Petyuk VA, Wang YT, Shi T, Shriver CD, Rodland KD, Liu T.|
|Taylor KM, Ricks KM, Kuehnert PA, Eick-Cost AA, Scheckelhoff MR, Wiesen AR, Clements TL, Hu Z, Zak SE, Olschner SP, Herbert AS, Bazaco SL, Creppage KE, Fan MT, Sanchez JL.|
;
Then first turn the mixed_up dataset into two separate datasets.
data A;
set mixed_up(keep=A FIND);
where A ne ' ';
run;
proc sort data=A nodupkey;
by A ;
run;
data B;
set mixed_up(keep=B);
run;
Then just combine them and take the MAX of the results of the FINDW() function call.
proc sql;
create table want as
select A, max(0<findw(B,A,' ,.','it')) as FIND
from A,B
group by A
;
run;
Results:
And if you really do have to use that mixed_up dataset you could use subqueries to do it in one SQL query.
proc sql;
create table want as
select A, max(0<findw(B,A,' ,.','it')) as FIND
from (select distinct A from mixed_up where A ne ' ') A
, (select distinct B from mixed_up where B ne ' ') B
group by A
;
run;
... View more