SAS 매크로 중에서 %EVAL 은 정수의 사칙 연산과 비교 연산( >, <, ≤, ≥, ≡, ≠) 하는데 사용하는 매크로입니다.
소수점 계산은 불가능하며 결과값은 텍스트로 출력됩니다.
■ 사칙연산 예시
%LET x = 3;
%LET y = 5;
%LET sum = %EVAL(&x + &y);
%PUT 합계는 &sum 입니다.;
%LET문을 활용해서 값을 할당했습니다.
X = 3, Y = 5로 값을 할당했습니다.
&기호는 매크로 변수를 참조하는 기호로 맨크로 변수값을 사용할 때는 & 기호를 붙여 사용합니다.
%EVAL 문으로 사칙연산을 실행합니다. 정수 연산만 가능하고 소수점 연산일 경우에는 %SYSEVALF를 사용합니다.
%PUT 문으로 SAS 로그에 메시지를 출력할 수 있습니다.
■ 참조) %SYSEVALF(소수점 연산)
%LET x = 3.5;
%LET y = 5.2;
%LET sum = %SYSEVALF(&x + &y);
%PUT 합계는 &sum 입니다.;
%LET x = 3.5;
%LET y = 5.2;
%LET sum = %EVAL(&x + &y);
%PUT 합계는 &sum 입니다.;
EVAL 문으로는 소수점 연산이 불가능합니다.
■ 비교 연산 예시
비교연산의 경우 매크로 조건문 내에서 논리적인 조건을 평가할 때 사용하므로, %IF-%THEN-%DO와 같은 매크로 조건문과 함께 사용됩니다.
두 매크로 변수 (&score, &points)값을 비교하는 예제입니다.
&score 값은 90, &points 값은 85로 저장되었습니다.
%IF-%THEN-%DO 매크로 조건문과 비교 연산 매크로 %EVAL을 사용해서 score 변수와 points 변수 값을 비교하였습니다.
%LET score = 90;
%LET points = 85;
%IF %EVAL(&score = &points) %THEN %DO;
%PUT 동일합니다.;
%END;
%ELSE %DO;
%PUT 상이합니다.;
%END;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.