BookmarkSubscribeRSS Feed

SAS Macro - %EVAL

Started yesterday by
Modified yesterday by
Views 38

 

%EVAL

 

SAS 매크로 중에서 %EVAL 은 정수의 사칙 연산비교 연산( >, <, ≤, ≥, ≡, ≠) 하는데 사용하는 매크로입니다.

소수점 계산은 불가능하며 결과값은 텍스트로 출력됩니다.

 

 

 

■ 사칙연산 예시

 

%LET x = 3;
%LET y = 5;

%LET sum = %EVAL(&x + &y);
%PUT 합계는 &sum 입니다.;

 

 

%LET문을 활용해서 값을 할당했습니다.

X = 3, Y = 5로 값을 할당했습니다.

 

&기호는 매크로 변수를 참조하는 기호로 맨크로 변수값을 사용할 때는 & 기호를 붙여 사용합니다.

%EVAL 문으로 사칙연산을 실행합니다. 정수 연산만 가능하고 소수점 연산일 경우에는 %SYSEVALF를 사용합니다.

%PUT 문으로 SAS 로그에 메시지를 출력할 수 있습니다.

 

 

 

image.png

 

 

 

■ 참조) %SYSEVALF(소수점 연산)

 

%LET x = 3.5;
%LET y = 5.2;

%LET sum = %SYSEVALF(&x + &y);
%PUT 합계는 &sum 입니다.;

image.png

 

 

 

%LET x = 3.5;
%LET y = 5.2;

%LET sum = %EVAL(&x + &y);
%PUT 합계는 &sum 입니다.;

 

EVAL 문으로는 소수점 연산이 불가능합니다.

  

image.png

 

 

 

 

 

■ 비교 연산 예시

비교연산의 경우 매크로 조건문 내에서 논리적인 조건을 평가할 때 사용하므로, %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;

 

 

image.png

 

 

Contributors
Version history
Last update:
yesterday
Updated by:

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

Article Labels
Article Tags