【发布时间】:2014-09-17 08:53:47
【问题描述】:
所以,我对 proc 比较有一个重大问题。我有两个包含两列的数据集。一列列出表名,另一列列出与第一列中的表名相对应的变量名称。我想根据第一列的值比较其中一个的值。我在某种程度上使它起作用,但问题是这些数据集由于其中一个数据集的附加值而具有不同的大小。这意味着在数据集的中间添加了一些新变量(新变量已添加到表中)。不幸的是,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;
【问题讨论】:
-
我尝试了半个小时来理解你的问题,但没有成功。如果重写呢?