사이트맵  |  Contact Us
 
홈 > SAS Tech & Tip > SAS Programming
Practice 3. 효율적인 Data-Step 구성(2) 2010.01.12
MYSAS 7016 0
http://www.mysas.co.kr/SAS_tiptech/a_question.asp?b_no=961&gotopage=34&con=subject&keyword=&cmd=content&bd_no=05&gubun=

 
 

Practice3. 효율적인 Data-Step 구성(2)

 

  Intro

 


 지난 주에 보내드린 것은 잘 보셨는지요?.
연습문제에 대한 모범답안을 보내드렸으니 자신이 푼 것과 비교를 해 보시는 것도 좋으실 것 같습니다. 이번 주에는 프로그램 작성시에 쓰지 않아도 되는 문장에 대해서 예를 들어 설명하도록 하겠습니다.

자!! 그럼 한번 풍~웅~덩 빠~져~볼까요?

 

  Pracitce. Which subsets will be needed?

 

 

   1. 설명 : 아래 두개의 차이는 무엇을까요?

Data Step 실행후 Proc 실행

Proc 옵션 활용

 Data result;
        set sashelp.class;
        where sex = 'M';
  run;

proc means data= result;
   var age;
run;

 

처리  Data Step 실행후 Proc 실행

 

proc means data=sashelp.class;
           where sex = 'M';
           var age;
run;

 

Dataset 옵션 활용

proc means data=sashelp.class(where=(sex = 'M'));
           var age;
run;

 Dataset 옵션이란?
* Dataset 옵션 처리는 프로시저를 실행 이전에
조건에 맞는 데이터만 가져와서 프로시져의 실행.

결과는 보시기에도 같을 것이라는 느낌이 오죠?.

그러나 두 개의 유형에 대해서 어느 것이 효율적이라고 생각하세요?. 대부분 정답을 맞췄을 것입니다.

이렇게 사소한 것 하나하나 한번 더 생각하고 프로그램을 하신다면 최적의 효과를 볼 수 있을 겁니다.


 
 

  Exercise

 


위에서 배운 내용을 기반으로 아래의 예제를 작성하여 보시기 바랍니다.

Q.  Class 의 데이터에서 sex 컬럼의 데이터가 여자(‘M’)이고, Proc 문장을 사용하여
     Weight 컬럼의
평균 / 표준편차 / 최소값 / 최대값 을 구하세요.

        (단, 위의 SASHELP.CLASS의 건수가 수천만건 혹은 수억건이라고 가정하세요.)

 프로그램 코딩하는데는 그리 어렵지 않을 겁니다.
 결과는 같더라도 얼마나 최적화하여 프로그램을 작성 하느냐에 따라, 실행시간(Performance) 에 상당한  차이가 있습니다.

 

* 정답은 다음 차시에 공개됩니다.

 

  2회 Exercise 모범 답안

 

 

data result;
   set sashelp.class(where=(sex='M'));
   value1 = height/weight;
   if value1 <= 1;
run;
 
Tips : 데이터를 선택할 수 있는 방법으로 사용되는 Where 옵션과 IF 문장의 차이는 아래와 같습니다.

    -      Where 옵션: Dataset 옵션이므로 사용할 수 있는 변수는 Dataset이 가지고 있는 Variables
    -      IF 문장: Data Step 문장이므로 Step안의 모든 변수(Dataset Variables 및 파생변수)를 사용할
        수 있습니다.

     

 
 

 
본 자료의 저작원은 SAS KOREA. 에 있으며, 무단배포를 금합니다

 

 
 
휴대폰 번호
휴대폰 인증번호
 
 Practice 4. First, Last, End Options
 Practice 2. 효율적인 Data-Step 구성(1)