Вы можете использовать следующие методы для округления чисел в SAS:
Метод 1: округление до ближайшего целого числа
data new_data;
set original_data;
new_value = round (value);
run ;
Метод 2: округление до определенных десятичных разрядов
data new_data;
set original_data;
new_value1 = round (value, .1); /\*round to 1 decimal place\*/
new_value2 = round (value, .01); /\*round to 2 decimal places\*/
new_value3 = round (value, .001); /\*round to 3 decimal places\*/
run ;
Способ 3: округление всех значений вниз (или вверх) до следующего целого числа
data new_data;
set original_data;
new_value1 = floor (value); /\*round down to next integer\*/
new_value2 = ceil (value); /\*round up to next integer\*/
run ;
Метод 4: округление до ближайшего кратного
data new_data;
set original_data;
new_value1 = round (value, 10); /\*round to nearest multiple of 10\*/
new_value2 = round (value, 100); /\*round to nearest multiple of 100\*/
run ;
В следующих примерах показано, как использовать каждый метод со следующим набором данных в SAS:
/\*create dataset\*/
data original_data;
input value;
datalines ;
0.33
0.9
1.2593
1.61
2.89
4.3
8.8
14.4286
18.2
51.4
;
run ;
/\*view dataset\*/
proc print data =original_data;

Пример 1: округление до ближайшего целого числа
В следующем коде показано, как округлить каждое значение до ближайшего целого числа:
/\*round to nearest integer\*/
data new_data;
set original_data;
new_value = round (value);
run ;
/\*view new dataset\*/
proc print data =new_data;

Пример 2: *округление до определенного десятичного разряда*
В следующем коде показано, как округлить значения до определенного числа знаков после запятой:
data new_data;
set original_data;
new_value1 = round (value, .1); /\*round to 1 decimal place\*/
new_value2 = round (value, .01); /\*round to 2 decimal places\*/
new_value3 = round (value, .001); /\*round to 3 decimal places\*/
run ;
/\*view new dataset\*/
proc print data =new_data;

Пример 3. Округление всех значений вниз (или вверх) до следующего целого числа
Следующий код показывает, как округлить все значения вниз (или вверх) до следующего целого числа, используя функции floor() и ceil() :
data new_data;
set original_data;
new_value1 = floor (value); /\*round down to next integer\*/
new_value2 = ceil (value); /\*round up to next integer\*/
run ;
/\*view new dataset\*/
proc print data =new_data;

Метод 4: округление до ближайшего кратного
В следующем коде показано, как округлить все значения до ближайшего кратного некоторого значения:
data new_data;
set original_data;
nearest10 = round (value, 10); /\*round to nearest multiple of 10\*/
nearest100 = round (value, 100); /\*round to nearest multiple of 100\*/
run ;
/\*view new dataset\*/
proc print data =new_data;

Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
Как нормализовать данные в SAS
Как заменить пропущенные значения нулем в SAS
Как удалить дубликаты в SAS