BookmarkSubscribeRSS Feed

[2-4] User-Defined Macro Variables

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

[2-4] User-Defined Macro Variables

 

 안녕하세요^^

​오늘은 사용자 지정 매크로 변수에 대해 알아보도록 하겠습니다.

%let문을 사용하면 매크로 변수를 지정할 수 있습니다.

​%let문은 일반적으로 다음과 같이 사용합니다.

 

 %LET variable = value;

 

​Variable에는 SAS에서 사용할 이름을 지정하며, ​만약 variable이 이미 존재하면 value값은 원래의 값을 덮어쓰게 됩니다.

- %let문은 프로그램의 어디에서 실행되어도 유효합니다.

​​- Value값의 특징은 최대 길이 65,534문자(64k)까지 가능하며, 최소길이는 0(null value)까지 가능합니다.

​- 수치연산은 계산된 값으로 가능하지 않고, numeric 토큰도 character strings으로 저장되며, 인용마크 또한 값의 일부로 저장됩니다.

 

예를들어 다음과 같은 코드를 실행시켜 봅시다.

 

SE22016071923263570.jpg

 

SE22016071923264670.jpg

 

Name은 Ed Norton 의 value를 갖습니다.

앞서 말씀드렸듯이, 인용부호 또한 value의 일부로 인식한다는 설명처럼,

​​Name2는 ‘ Ed Norton ‘ 의 value를, Title은 “Joan’s Report”의 value를 갖습니다.

​Start는 공백을 value로 갖게 되며, sum은 수치연산이 아닌 3+4의 값 그대로를 value로 갖게 됩니다.

​Total은 처음에는 0이라는 값을 갖게되며, 두번째 total의 값은 첫번째 total의 값을 덮어쓰게 되므로 0+3+4의 값을 total의 값으로 갖게 됩니다.

또한 x는 varlist라는 값을 value로 갖게 되며, &x에 값을 지정해주시는 매크로 문에서는 &x에 해당하는 varlist 변수가 name age height의 value를 갖게 됩니다.​

 

 

 

다음 예제를 통해 매크로 변수로 numeric value를 지정하는 경우를 살펴보겠습니다.

 

SE22016071923312370.jpg

 

위와 같이 코드를 실행시키면,

 

 

SE22016071923313970.jpg

 

위와 같이 코드를 실행시키면,

 

SE22016071923321670.jpg

 

결과 또한 age at start 가 30 이상인 경우의 status와 death cause에 관한 table이 작성된 것을 확인하실 수 있습니다.

 

 

 

 

 

다음 예제를 통해 매크로 변수로 character value를 지정하는 경우를 살펴보겠습니다.

 

SE22016071923330270.jpg

 

위와 같이 코드를 실행시키면,

 

SE22016071923332270.jpg

 

로그창에 에러 없이 실행되는 것을 확인하실 수 있으며,

SE22016071923334170.jpg

 

결과는 status가 “Death”인 경우의 성별의 빈도에 관한 table이 작성된 것을 확인하실 수 있습니다.

 

 

 

 

 다음으로 매크로 변수로 date를 지정하는 경우를 살펴보겠습니다.

 

SE22016071923340670.jpg

 

위와 같이 코드를 실행시키면,

SE22016071923342370.jpg

 

로그창에 에러 없이 실행되는 것을 확인하실 수 있으며,

 

SE22016071923343670.jpg

 

결과는 날짜가 04jan00에서 07jan00 사이인 경우의 Xn, Xc, Y값을 확인하실 수 있습니다.

 

 

 

 

추가적으로,

SE22016071923352270.jpg

를 통해서, 사용자 지정 매크로 변수가 어떤 것들이 있는지 확인할 수 있습니다.

 

 

또한,

SE22016071923353770.jpg

을 통해서, 사용자 지정 매크로 변수 이외의 자동으로 저장되어 있는 매크로 변수들까지 확인하실 수 있습니다.

 

 

또한,

SE22016071923355570.jpg

을 통해서, 매크로 지정 변수가 프로그램 안에서 어떤 변수로 변환되는지 설명해줍니다.

 

 

 

예를들면,

 

SE22016071923362270.jpg

 

앞서 실행하였던 같은 코드를 options symbolgen 옵션을 사용하여 실행해보도록 하겠습니다.

 

SE22016071923363470.jpg

 

SE22016071923364970.jpg

 

위와 같은 결과를 얻을 수 있으며, 다만, log창을 보면 매크로 변수가 어떤 값으로 변환되어 계산되었는지 알 수 있게 됩니다.

 

 

 

SE22016071923371170.jpg

 

%put _user_로 사용자가 지정한 매크로 변수가 위와 같이 존재하는 것을 확인할 수 있습니다.


이 때,

 

 %SYMDEL macro-variables;

을 사용하여, 사용자가 지정한 매크로 변수를 삭제할 수 있습니다.

​예를 들어, units 매크로 변수를 삭제하려면,

SE22016071923384370.jpg을 실행시킵니다.

 

 

 

SE22016071923390270.jpg

 

위와 같이 매크로 변수 units이 삭제된 것을 확인하실 수 있습니다.

 

 

 

 

이상 사용자 지정 매크로 변수에 대해 알아보았습니다.

 

 

Contributors
Version history
Last update:
‎06-16-2020 06:06 AM
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