5.2.1 Parameter Validation
안녕하세요^^
오늘은 parameter validation에 대해 알아보도록 하겠습니다.
오늘 사용할 데이터는 sashelp 라이브러리에 있는 class 데이터를 사용하도록 하겠습니다.
첫 번째 예제로 “OR”을 사용하는 코딩입니다.
위의 코딩의 if문을 살펴보면,
만약 name이라는 매크로 변수의 값이 알프레드, 앨리스, 제임스, 존 중에 하나라면
Proc print 프로시저를 실행하라는 매크로 입니다.
만약 name이라는 매크로 변수의 값이 위의 4개의 이름에 포함되지 않는다면
“Sorry, no students from Class” 라는 문장을 출력하라는 코딩입니다.
결과적으로,
name이라는 매크로 변수의 값이 알프레드 일때는, 알프레드의 성별, 나이, 신장, 체중 값을 나타냅니다.
하지만,
name이라는 매크로 변수의 값이 로날드라면,
로그창에 “Sorry, no students from Class”라는 문장이 출력된 것을 확인하실 수 있습니다.
위의 예제와는 다르게 “IN”을 사용하는 예제입니다.
매크로문이 아닌 일반 data step에서도 or을 여러 개 사용하는 경우 in으로 대체가 가능합니다.
마찬가지로 매크로 문에서도 in으로 대체가 가능합니다.
IN 뒤에 오늘 값들은 MINOPERATOR 옵션을 사용하면 괄호 없이 작성 가능합니다.
결과적으로,
name이라는 매크로 변수의 값이 알프레드 일때는, 알프레드의 성별, 나이, 신장, 체중 값을 나타냅니다.
하지만,
name이라는 매크로 변수의 값이 로날드라면,
로그창에 “Sorry, no students from Class”라는 문장이 출력된 것을 확인하실 수 있습니다.
즉, 위의 매크로 코딩과 같은 결과를 얻었음을 알 수 있습니다
다음으로 “IN”의 부정을 사용하는 예제를 살펴보겠습니다.
IN을 NOT과 함께 쓸 때에는, NOT이 IN 표현보다 앞에 나와야 합니다.
아래의 일반적인 폼과 같이 괄호는 필요합니다.
%if not (&macvar in &valuelist) %then ……;
앞선 코딩과 다른 의미를 담고 있는 매크로 입니다.
만약 매크로 변수 name이 알프레드, 앨리스, 제임스, 존 중에 하나가 아니라면,
Proc print 프로시저를 통해 성별, 나이, 신장, 체중 값을 출력하는 코딩이며,
조건을 만족하지 않으면 로그창에 “Sorry, no students from Class”라는 문장이 출력되는 코딩입니다.
결과적으로,
앞선 코딩들과는 반대로
name이라는 매크로 변수의 값이 알프레드 일때는,
로그창에 “Sorry, no students from Class”라는 문장이 출력된 것을 확인하실 수 있으며,
name이라는 매크로 변수의 값이 로날드라면,
로날드의 성별, 나이, 신장, 체중 값을 나타냅니다.
이상으로 parameter validation에 대해 알아보았습니다.
다음 시간에는 parameter validation 두번째 시간으로 조금 더 심화된 내용입니다.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.