我有这个数据集有2个数值,这些值是由具有不同精度参数的不同系统计算的。所以他们的选择不同。
data test;
a = 10;
b= 11;
run;
基本上a和b的起始值几乎相同,但由于四舍五入的差异,最终得到的值不同。 我需要一个proc sql,它将这些值视为相同(i,e。精度为(+/- 1);
所以我需要这个才能返回true;
proc sql;
select * from test where a = b;
quit;
答案 0 :(得分:1)
这很丑陋,假设你说的是一个整数范围内的任何东西应该被视为相同的值,那么你可以这样做:
where max(a,b) - min(a,b) le 1;
这假定没有缺失值。如果您缺少值,可以使用以下内容:
where max(sum(0,a),sum(0,b)) - min(sum(0,a),sum(0,b)) le 1;