BASE SAS기초] Creating Variables Conditionally(2)
안녕하세요^^
오늘은 Creating Variables Conditionally의 두번째 시간입니다~
지난시간 IF 문과 IF-THEN문에 대해 공부했는데, 오늘은 조금 더 심화된 내용인 IF-THEN/ELSE문과 IF-THEN DO/ELSE DO문에 대해 공부하겠습니다.
데이터는 지난시간과 마찬가지로 sashelp 라이브러리에 있는 heart 데이터 입니다.
우선 데이터를 불러오겠습니다
이제 본격적으로 IF-THEN/ELSE문과 IF-THEN DO/ELSE DO문에 대해 알아보겠습니다.
(3) IF-THEN/ELSE 문
IF expression THEN statement; ELSE IF expression THEN statement; (ELSE statement;) |
IF-THEN/ELSE문은 IF 다음의 수식이 참이면 THEN 이후의 문장을 실행하고, 거짓이면 ELSE 이후의 문장을 실행합니다.
예제를 통해 이해해보도록 하겠습니다.
sex가 ‘Female’이면 ‘F’로, 아니면 ‘M’으로 바꾸는 프로그램을 작성한다면,
앞서 배웠던 IF THEN문장(sex가 ‘Female’이면 ‘F’로 값 변경) 후에 ELSE문장(아니면 sex값을'M'으로 변경) 을 추가해주면 됩니다.
만약, 변수 값이 3개 이상의 값을 갖고 있다면 어떻게 코딩할까요?
예를들어, BP_status값이 ‘High’이면 BP_status를 ‘H’로 바꾸고, BP_status값이 ‘Normal’이면 BP_status를 ‘N’로 바꾸며, 그 외의 값에는 ‘O’로 바꾸는 코딩입니다.
코딩한 바와 같이, BP_status 값에 따라 BP_status가 ‘H’, 'N', 'O'로 바뀐 것을 확인하실 수 있습니다.
즉, ELSE IF문과 ELSE문을 적절히 사용하면, 변수 값의 분류가 4개, 5개일 때에도 위와 같은 코딩이 가능해 집니다.
(4) IF-THEN DO/ELSE DO 문
IF expression THEN DO; Executable statement; END; ELSE IF expression THEN DO; Executable statement; END; |
일반적으로 IF문장에서 THEN이나 ELSE 다음에는 원래 실행문을 단 하나만 지정할 수 있습니다.
그런데 THEN이나 ELSE다음에 실행문을 둘 이상 나열할 필요가 있을 때가 있습니다.
이러한 경우에, DO문장을 사용하여 둘 이상의 실행문들을 한 단위로 만들어주는 문장입니다.
단, DO이후에는 END를 넣어서, 반드시 DO GROUP을 끝내주셔야 합니다.
예를들어, BP_status가 ‘High’이면 BP_status를 ‘H’로 바꾸고 group을 1이라고 지정해주며,
BP_status가 ‘Normal’이면 BP_status를 ‘N’으로 바꾸고 group을 2라고 지정해주는 코딩을 작성합니다
위의 코딩을 실행하면,
BP_status의 값이 H와 N으로 바뀐 것과 새로운 group변수에 1과 2의 값이 작성된 것을 보실 수 있습니다
이상 IF-THEN/ELSE문과 IF-THEN DO/ELSE DO문에 대해 공부하였습니다. 잘 따라오셨나요~?
다음 시간에는 WHERE문에 대해 공부하겠습니다.
읽어주셔서 감사합니다^^
Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.