BookmarkSubscribeRSS Feed

[5-1-1] Conditional Processing

Started ‎06-16-2020 by
Modified ‎06-16-2020 by
Views 105

5.1.1 Conditional Processing 

안녕하세요^^

오늘은 매크로 프로그램에서의 Conditional Processing에 대해 알아보도록 하겠습니다.

Macro-Level programming은 조건부적으로 코드를 만들 수 있습니다.

조건문에는 아래의 사항들이 들어갈 수 있습니다.

 

SE22016091712502970.jpg

 

​Conditional Processing은 %IF - %THEN 과 %ELSE 문으로 구성됩니다.

일반적인 문장은 아래와 같이 작성합니다.

 

%IF expression %THEN action;

%ELSE action;

 

expression에는 모든 타당한 macro expression이 가능합니다.

이는 SAS expressions와 유사한데, 이 자리에는 아래의 것들이 올 수 있습니다

 

SE22016091712524770.jpg

 

 

- %ELSE 문은 쓰지 않아도 되는 선택적인(optional) 문장입니다.

- Action 자리에는 아래의 것들이 올 수 있습니다​.

 

SE22016091712535070.jpg

 

 

- 위의 매크로문은 매크로 정의 내에서 사용 가능합니다​.

 

 

이제 예제를 통해 알아보도록 하겠습니다.

데이터는 sashelp 라이브러리에 있는 stocks 데이터를 이용해보도록 하겠습니다.

 

 

 

SE22016091712550270.jpg

Proc contents 문을 사용하여 살펴본 데이터는 총 8개의 변수로 이루어져있는 데이터입니다.

 

 

SE22016091712551570.jpg

아래의 데이터는 총 669개의 관측치 중 일부(10)를 살펴본 것입니다.

 

 

 

 

SE22016091712555570.jpg

 

 

SE22016091712561770.jpg

 

 

SE22016091712560770.jpg

 

코딩은 proc print 프로시저를 실행하는 문장입니다.

​date변수가 &sysdate 날짜보다 작은 경우의 값들을 보여주게 됩니다.

​총 669개의 관측치로 이루어진 데이터를 통해 proc print 프로시저를 실행하면,

669개의 모든 관측치가 보여지는 결과를 얻게 됩니다.

위의 보여지는 결과는 총 669개의 데이터 중 일부(10개)만 나타낸 것입니다.

 

 

 

 

 

추가적으로, MLOGIC이라는 시스템 옵션이 있습니다.

​이것은 SAS 로그창에 매크로 실행 메시지를 보여주며. Default는 NOMLOGIC입니다.

 

SE22016091712574170.jpg

 

 

 

 

위의 두 가지 사항을 모두 사용한 예제를 보여드리도록 하겠습니다.

 

 

 

SE22016091712581170.jpg

 

 

SE22016091712581870.jpg

 

 

SE22016091712582370.jpg

 

 위의 코딩과 마찬가지로 이 코딩은 proc print 프로시저를 실행하는 문장입니다.

​date변수가 &sysdate 날짜에서 7300일 전(19SEP1995)부터 7666일 전(19SEP1996)까지의 1년 기간에 해당하면 결과를 보여주게 됩니다.

​총 669개의 관측치로 이루어진 데이터를 통해 proc print 프로시저를 실행하면,

​36개의 관측치가 보여지는 결과를 얻게 됩니다.

위의 보여지는 결과는 총 36개의 데이터 중 일부만 보인 것입니다.

 

 

 

 

 

 

또 다른 예로 조건이 만족하면 매크로를 실행하는 문장을 작성해보도록 하겠습니다.

 

 

SE22016091712595570.jpg

 

 

SE22016091713000370.jpg

 

위의 코딩의 결과는 앞서 보여드렸던 결과를 합쳐놓은 것과 같습니다.

​즉, %daily를 먼저 작성한 후, &sysday가 ‘수요일’이면 %year의 결과를 작성하라는 코드이므로,

​%daily의 결과인 669개의 관측값을 갖고있는 테이블과 %year의 결과인 36개의 관측값을 갖고있는 테이블을 같이 보여줍니다.

 

 

 

 

 

 

이상으로 Conditional Processing에 대해 살펴보았습니다.

Contributors
Version history
Last update:
‎06-16-2020 09:45 PM
Updated by:

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

Register now

Article Labels
Article Tags