我有一个表,其中一列包含大约15000个字符串值,我想将其与单独表中的几列进行比较。
这是表1的示例(列大约有15000个值:
List1
AA567
AA698
...
ZZ789
这是表2的示例(每列大约有150个条目):
Column1 Column2 Column3 ... Column15
AA467 AA567 AA899 AA111
... ... ... ...
ZZ345 ZZ567 ZZ711 ZZ789
如果List1中的条目与Column1到Column15中的任何条目相匹配,我想返回一个“ 1”或某些匹配的指示。 我认为可以使用合并函数在表2中的各个列之间进行合并,但是我不确定如何与具有数千个条目的单独表进行比较。
答案 0 :(得分:1)
您没有提及是否要为LIST中的每个条目设置一个标志还是一个标志。这应该给您一些想法。
data list1;
input target :$5.;
cards;
AA567
AA698
ZZ789
;;;;
run;
data column;
input (Column1-Column3 Column15)(:$5.);
cards;
AA467 AA567 AA899 AA111
ZZ345 ZZ567 ZZ711 ZZ789
;;;;
run;
proc print;
run;
data flag;
if _n_ eq 1 then do;
array list[3] $5 _temporary_;
do i=1 to dim(list) while(not eof);
set list1 end=eof;
list[i] = target;
end;
end;
flag = 0;
set column;
array column[*] column:;
do i = 1 to dim(list);
flag + list[i] in column;
end;
drop i target;
run;
proc print;
run;