BookmarkSubscribeRSS Feed

[예제로 배우는 SAS] 7. Performing Conditional Processing

Started ‎06-11-2020 by
Modified ‎06-11-2020 by
Views 110

1.PNG

 

 

안녕하세요. MYSAS입니다.

 금주는 조건문의 사용법에 대해서 알아보도록 하겠습니다

 

 

 

목  차

  1. Introduction
  2. The IF and ELSE IF Statements
  3. The IF and THEN DO Statements
  4. Data Step에서 필요한 값들만 빼오는 방법
  5. Problem

 

 

 

1. Introduction

  이번 챕터에서는 의사 결정을 하기 위한 프로그램을 만들 때 쓸 수 있는 도구들을 학습 할 것입니다. 가령, 특정 연령의 집단을 따로 만들어 낼 때, 조건들을 부여하여 만들어야 정확한 집단을 만들어 낼 수 있을 것입니다. 이러한 도구들을 통하여 주어진 데이터를 바탕으로 논리적인 의사결정을 실행할 수 있는 것입니다. 

 

 

 

  1. The IF and ELSE IF Statements

 

Player

Score

Rebound

Jordan

42

8

Pipen

28

11

Rodman

15

21

 

         -       여기서 변수 하나를 추가하고 싶습니다. 바로 Point라는 변수인데요.

-       Score가 40이상이면 Point = score*0.8 + rebound * 1.2

-       Score가 40미만이면 Point = Score*1.0 + rebound * 0.8 로 설정하고 싶습니다.

 

->  이럴 때 바로 조건문을 사용 하는 것입니다. 일반적인 사용법은 이렇습니다.

 

   우선 하나짜리 조건문은 이렇습니다.

 

If 조건문THEN 실행문 ;

<ELSE 실행문;>

 

 

하나 이상의 조건문은

 

IF 조건문1 THEN 실행문;

ELSE IF 조건문2 THEN 실행문;

ELSE IF 조건문3 THEN 실행문;

<ELSE 실행문;>

 

          실행문이 두개 이상이라면 IF … THEN DO 명령문을 사용합니다.

 

If 조건문THEN DO;

실행문1 ;

실행문2 ;

END;

<ELSE DO;

실행문1;

실행문2;

END;>

 

-       그럼 이제 위의 예제를 코딩 해보겠습니다. 

 

 

      If score < 40 then;

Point= score*1.0 + rebound*0.8.;

else if age > 40 then

 Point= score*0.8 + rebount*1.2;

Run;

 

 

 

  1. The IF and THEN DO Statements

  

-       앞서 언급하였듯이 실행문이 두개 이상이라면 IF…  THEN DO 명령문을 사용합니다.

-       이번에는 Score가 40이상이면 Role이라는 변수에 Key라고 표시하겠습니다.

-       나머지는 Sub이라고 문자 변수를 표시하겠습니다.

 

If score < 40 then do;

Point= score*1.0 + rebound*0.8.;

Role = ‘Key’;

           End;

else if age > 40 then do;

 Point= score*0.8 + rebount*1.2;

Role = ‘Sub’;

           End;

Run;

 

 

 

  1. Data Step에서 필요한 값들만 빼오는 방법.

  

-       만약 어떠한 데이터 안에서 조건을 주고 특정 자료를 빼내고 싶을 때 Data Step에서 다음과 같은 조작이 필요합니다.

 

(1)  Subsetting IF 문장 : Data Step only

(2)  WHERE 문장 : Data Step, Proc Step 모두 사용가능

 

-       단, WHERE 문장을 Data Step에서 사용할 경우 Input용 Data Set에 존재하는 변수에 관해서만 사용이 가능하다는 점을 염두 해야 합니다.

 

-       다음 예제는, 위의 데이터 ( basketball )에서 Role이 Key인 선수만 뽑아내서 Keyplayer라는 데이터를 따로 만드는 코딩을 보여주는 것입니다.

 

DATA keyplayer;

                  SET work.basketball;

                Where Role = ‘Key’; /* 또는 if Role = ‘Key’;  */

     RUN;

 

 

 

  1. Problem 

  

 

 다음 프로그램을 실행하여 School이라는 임시 SAS Data Set을 만듭니다

 

DATA school;

            input Age Quiz : $1. Midterm Final;

            /* 이곳에다가 명령문을 집어넣어 보세요^^ */

            datalines;

            12 A 92 95

            12 B 88 88

            13 C 78 75

            13 A 92 93

            12 F 55 62

            13 B 88 82

            ;

 

-       문제  : 여기서 IF와 ELSE IF 명령문을 이용하여 다음 세 개의 변수를 만들어 봅니다

 

  • Grade : Age가 12인 경우에는 6, 13인 경우네는 8을 넣습니다.
  • Quiz Grade : A= 95, B= 85, C= 75, D= 70, F=65
  • Course Grade = Quiz Grade(20%) Midterm(30%) Final(50%)  Weighted Average

 

 

 

 

수고하셨습니다. 정답은 다음주에 댓글로 달아드리겠습니다.^^ 즐거운 한주 보내세요~

 

본 자료의 저작권은 sas에 있습니다

Version history
Last update:
‎06-11-2020 09:32 PM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

Article Labels
Article Tags