所以,我对proc compare有一个很大的问题。我有两个包含两列的数据集。一列列出表名,另一列列出与第一列中的表名相对应的变量名称。我想根据第一列的值比较其中一个的值。我在某种程度上使它起作用,但问题是这些数据集由于其中一个数据集的附加值而具有不同的大小。这意味着在数据集的中间添加了一些新变量(新变量已添加到表中)。不幸的是,proc compare 水平比较来自两个数据集的值并相互检查它们的值,所以在我的例子中它看起来像这样:
ds 1 | ds 2
cost | box_nr
other | cost_total
如您所见,box_nr
第二个数据集添加了一个新值,该值显示在我希望它与cost
( cost_total
) 进行比较的值之上。所以我想知道是否可以比较至少具有最小相似性的值(检查字符序列中的差异) - 例如3个字母(cos),或者是否可以将值box_nr
放在最后暗示它们不'不会出现在某个数据集中。
我的代码:
PROC Compare base=USERSPDS.MIzew compare=USERSPDS.MIwew
out=USERSPDS.result outbase outcomp outdif noprint;
id 'TABLE HD'n;
where ;
run;
proc print data=USERSPDS.result noobs;
by 'TABLE HD'n;
id 'TTABLE HD'n;
title 'COMPARISON:';
run;