로그인   |  회원가입  |  사이트맵  |  Contact Us
  아이디 저장하기
 
홈 > SAS Tech & Tip > SAS Programming 활용하기
[SAS 고급] DATA Step Hiter Object (2) 2017.06.18
MYSAS 시샵 79 0
http://www.mysas.co.kr/sas_tiptech/a_question.asp?b_no=7328&cmd=content&bd_no=5

[SAS 고급] DATA Step Hiter Object (2)

 

안녕하세요^^

 

이번 시간에는 지난시간에 이어 SAS Data StepHiter Object를 사용하는 방법에 대해 살펴보겠습니다.


지난 시간 간단한 코드를 통해 해시 반복기 객체를 사용하여 해시 객체 데이터를 검색하는 네 가지 방법에 대해 살펴보았습니다.

이번 시간에는 예제를 통해, Hiter object의 사용 방법과 과정에 대해 살펴보겠습니다. .

 

▶ 비즈니스 시나리오를 살펴보도록 하겠습니다.

▷ 마케팅 부서에서는 가장 비싼 물건과 두 명의 고객과 가장 저렴한 물건을 주문한 두 명의 고객을 파악하려고 합니다.

▷ 해시 반복기 객체는 이러한 4명의 고객을 효율적으로 찾기 위해, 오름차순 또는 내림차순으로 해시 객체 데이터를 검색할 수 있습니다.

 

▷ 다음과 같은 코드로 data step에서 Hiter object를 사용할 수 있습니다.


 

▷ 해시객체는 순서가 정렬되지 않았기 때문에 주의해야 합니다.

 


▷ 그에 비해, 해시객체의 순서를 ‘descending’으로 지정하였기 때문에, Hiter object의 뷰(view)는 내림차순으로 정렬됩니다.


work.top에 현재의 관측값을 출력합니다. , c.first();로 첫 번째 데이터 값이 출력됩니다.


c.next();로 다음 데이터 값으로 이동합니다.

 

end;를 만나면 i=1의 값에서 i=2의 값으로 바뀝니다.

 

work.top에 현재의 관측값을 출력합니다. , 두 번째 관측값을 출력합니다.

 

c.next();로 다음 데이터 값으로 이동합니다



end;를 만나면 i=2의 값에서 i=3의 값으로 바뀝니다. 

 

do 문장의 조건을 만족하지 않기 때문에, Do loop에서 빠져나옵니다.

 


c.last();에 의해 마지막 데이터 값으로 이동하며, work.bottom에 현재의 값을 출력합니다.

c.prev();에 의해 데이터 항목을 역순으로 반환합니다.

 

end;를 만나면 i=1의 값에서 i=2의 값으로 바뀝니다.

 

 

work.bottom에 현재의 관측값을 출력합니다. , 두 번째 관측값을 출력합니다.


 

c.prev();에 의해 데이터 항목을 역순으로 반환합니다.

 

 

end;를 만나면 i=2의 값에서 i=3의 값으로 바뀝니다.

 

 

do 문장의 조건을 만족하지 않기 때문에, Do loop에서 빠져나옵니다.


STOP 문장은 로그창에 “NOTE: DATA step stopped due to looping.” note가 나타나지 않게 합니다.

 

 

이상으로 예제를 통해 해시 객체 데이터를 검색하는 네 가지 방법을 어떻게 사용하고, 어떤 논리에 의해 실행되는지 살펴보았습니다.

감사합니다^^

 

 
 
 
 
 [SAS 고급] 데이터스텝의 Merge와 SQL Joins 프로시저 (DATA Step Merges and SQL Procedure Joins)
 [SAS 고급] DATA Step Hiter Object (1)