2015-12-04 5 views
0

У меня есть этот набор данных с 2 числовыми значениями, эти значения рассчитываются различными системами с различными параметрами точности. Таким образом, они идут по-другому.Как установить точность на числовое значение SAS

data test; 
a = 10; 
b= 11; 
run; 

В основном, а и b начинаются как почти одинаковое значение поплавка, но из-за разницы в округлении, имеют другое значение. мне нужен ргос SQL, который рассматривает ценности как эти, как же (I, E точность (+/- 1);.

Так что мне это нужно, чтобы вернуться верно;

proc sql; 
select * from test where a = b; 
quit; 
+0

Вы пытались использовать функцию ROUND()? Вы можете использовать ROUND (x, 1) для округления до целого числа. Или используйте ROUND (x, 0.1) для округления до десятых. – Tom

+0

ROUND (10) = 10; round (11) = 11. Итак, мы вернемся к квадрату – Victor

+0

Вы имеете в виду 'abs (a-b) <= 1'? Или для управления отсутствующими значениями 'abs (a-b) между 0 и 1'. – Tom

ответ

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; 
Смежные вопросы