PROC FCMP는 유저가 직접 함수를 직접 만들어 여러 곳에서 재사용할 수 있게 하는 SAS 구문입니다.
자주 쓰는 계산식 등 반복적으로 사용해야하는 함수를 만들어서 여러 곳에서 반복적으로 사용 수 있다라는 특징이 있습니다.
예제를 통해서 PROC FCMP 구문에 대해서 더 자세히 알아보겠습니다.
PROC FCMP 구문을 이용해서 Circle 이라는 서브루틴을 생성하는 예제입니다.
PROC FCMP OUTLIB=work.functions.subR;
subroutine circle(radius, area, circum);
outargs area, circum;
area = 3.14 * radius ** 2;
circum = 3.14 * 2 * radius;
ENDSUB;
quit;
위 이미지에서 파란색 영역으로 PROC FCMP를 저장할 수 있는 환경 선언으로 시작과 종료를 나타냅니다.
빨간색 영역은 함수나 서브루틴을 선언하는 부분으로 실제 로직을 정의하는 핵심이 되는 영역입니다.
PROC FCMP 의 시작 부분에는 OUTLIB이라는 옵션이 있습니다.
OUTLIB이란 Output Library 로 출력 라이브러리의 약자로 함수를 저장하는 위치를 지정할 수 있는 옵션입니다.
PROC FCMP OUTLIB=라이브러리.카탈로그.패키지;
라이브러리: 데이터를 저장하는 가장 큰 단위로 work 라이브러리는 sas가 종료되면 자동으로 삭제되는 저장공간으로 드라이브 영역이라고 이해할 수 있습니다.
카탈로그: 사용자 정의 함수를 저장하는 공간으로 컴퓨터의 폴더입니다.
패키지는: 관련있는 함수들을 묶는 단위입니다. 컴퓨터의 영역으로 비교하면 폴더(카탈로그)의 하위폴더입니다. Function 이라는 폴더안에 Circle을 계산하는 함수 뿐 아니라 square 등 다양한 서브루틴 또는 함수를 저장할 수 있습니다.
It's your turn to help shape SAS Innovate 2027. Share your expertise and inspire the SAS community.