SAS - Операторы

Оператор в SAS - это символ, который используется в математическом, логическом выражении или выражении сравнения. Эти символы встроены в язык SAS, и многие операторы могут быть объединены в одном выражении для получения окончательного результата.

Ниже приведен список операторов категории SAS.

  • Арифметические операторы
  • Логические операторы
  • Операторы сравнения
  • Минимум / максимум операторов
  • Оператор конкатенации

Мы рассмотрим каждую из них по очереди. Операторы всегда используются с переменными, которые являются частью данных, анализируемых программой SAS.

Арифметические операторы

В таблице ниже подробно описаны арифметические операторы. Предположим, две переменные данныхV1 и V2с ценностями 8 и 4 соответственно.

Оператор Описание пример
+ Дополнение V1 + V2 = 12
- Вычитание V1-V2 = 4
* Умножение V1 * V2 = 32
/ Деление V1 / V2 = 2
** Возведение в степень V1 ** V2 = 4096

пример

DATA MYDATA1;
input @1 COL1 4.2	@7 COL2 3.1; 
Add_result = COL1+COL2;
Sub_result = COL1-COL2;
Mult_result = COL1*COL2;
Div_result = COL1/COL2;
Expo_result = COL1**COL2;
datalines;
11.21 5.3
3.11  11
;
PROC PRINT DATA = MYDATA1;
RUN;

Запустив приведенный выше код, мы получаем следующий результат.

Логические операторы

В таблице ниже подробно описаны логические операторы. Эти операторы оценивают истинное значение выражения. Таким образом, результат логических операторов всегда равен 1 или 0. Предположим, что две переменные данныхV1 и V2с ценностями 8 и 4 соответственно.

Оператор Описание пример
& Оператор AND. Если оба значения данных оцениваются как истинные, то результат равен 1, иначе - 0. (V1> 2 & V2> 3) дает 0.
| Оператор OR. Если какое-либо из значений данных оценивается как истина, то результат равен 1, иначе он равен 0. (V1> 9 и V2> 3) равно 1.
~ Оператор НЕ. Результат оператора НЕ в форме выражения, значение которого равно FALSE или отсутствующее значение равно 1, иначе это 0. НЕ (V1> 3) равно 1.

пример

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1; 
and_=(COL1 > 10 & COL2 > 5 );
or_ = (COL1 > 12 | COL2 > 15 );
not_ = ~( COL2 > 7 );
datalines;
11.21 5.3
3.11  11.4
;
PROC PRINT DATA = MYDATA1;
RUN;

Запустив приведенный выше код, мы получаем следующий результат.

Операторы сравнения

В таблице ниже подробно описаны операторы сравнения. Эти операторы сравнивают значения переменных, и результатом является значение истинности, представленное 1 для ИСТИНА и 0 для Ложь. Предположим, две переменные данныхV1 и V2с ценностями 8 и 4 соответственно.

Оператор Описание пример
знак равно Оператор EQUAL. Если оба значения данных равны, результатом будет 1, иначе - 0. (V1 = 8) дает 1.
^ = Оператор НЕ РАВНО. Если оба значения данных не равны, результатом будет 1, иначе - 0. (V1 ^ = V2) дает 1.
< МЕНЬШЕ, ЧЕМ Оператор. (V2 <V2) дает 1.
<= МЕНЬШЕ или РАВНО Оператор. (V2 <= 4) дает 1.
> БОЛЬШЕ, ЧЕМ Оператор. (V2> V1) дает 1.
> = БОЛЬШЕ, ЧЕМ или РАВНО Оператор. (V2> = V1) дает 0.
В Оператор IN. Если значение переменной равно любому из значений в данном списке значений, тогда возвращается 1, иначе возвращается 0. V1 в (5,7,9,8) дает 1.

пример

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1; 
EQ_ = (COL1 = 11.21);
NEQ_= (COL1 ^= 11.21);
GT_ = (COL2 => 8);
LT_ = (COL2 <= 12);
IN_ = COL2 in( 6.2,5.3,12 );
datalines;
11.21 5.3
3.11  11.4
;
PROC PRINT DATA = MYDATA1;
RUN;

Запустив приведенный выше код, мы получаем следующий результат.

Минимум / максимум операторов

В приведенной ниже таблице подробно описаны операторы минимума / максимума. Эти операторы сравнивают значения переменных в строке, и возвращается минимальное или максимальное значение из списка значений в строках.

Оператор Описание пример
MIN Оператор MIN. Он возвращает минимальное значение из списка значений в строке. MIN (45,2,11,6,15,41) дает 11,6
МАКСИМУМ Оператор MAX. Он возвращает максимальное значение из списка значений в строке. MAX (45,2,11,6,15,41) дает 45,2

пример

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1 @12 COL3 6.3; 
min_ = MIN(COL1 , COL2 , COL3);
max_ = MAX( COL1, COl2 , COL3);
datalines;
11.21 5.3 29.012
3.11  11.4 18.512
;
PROC PRINT DATA = MYDATA1;
RUN;

Запустив приведенный выше код, мы получаем следующий результат.

Оператор конкатенации

В таблице ниже описаны детали оператора конкатенации. Этот оператор объединяет два или более строковых значения. Возвращается односимвольное значение.

Оператор Описание пример
|| Оператор конкатенации. Он возвращает объединение двух или более значений. «Привет» || World 'дает Hello World

пример

DATA MYDATA1;
input  COL1 $	COL2 $  COL3 $; 
concat_ = (COL1 || COL2 || COL3);
datalines;
Tutorial s point
simple easy learning
;
PROC PRINT DATA = MYDATA1;
RUN;

Запустив приведенный выше код, мы получаем следующий результат.

Приоритет операторов

Приоритет операторов указывает порядок оценки нескольких операторов, присутствующих в сложном выражении. В таблице ниже описан порядок приоритета в группе операторов.

Группа порядок Символы
Группа I Справа налево ** + - НЕ МИН МАКС
II группа Слева направо * /
III группа Слева направо + -
IV группа Слева направо ||
Группа V Слева направо <<= => =>