BookmarkSubscribeRSS Feed

[SAS 고급] 다차원 배열: 예시 (Multidimensional Arrays: Example)

Started ‎06-17-2020 by
Modified ‎06-17-2020 by
Views 156

[SAS 고급] 다차원 배열: 예시 (Multidimensional Arrays: Example)

 

안녕하세요^^

이번 시간에는 lookup 테이블로써 다차원 배열을 사용하는 예시를 살펴보도록 하겠습니다.

 

 

▶ 비즈니스 시나리오는 다음과 같습니다.

▷ 각 ‘오리온 스타(Orion Star)’ 회사의 “실제 이익”을 “예산 이익”과 비교하는 작업을 해보겠습니다.

 

SE22017042010330970.png

 

▷ 사용할 SAS 데이터셋 orion.profit에는 2007년에서 2011년까지의 데이터가 월 단위(YYMM변수)로 구분되어 있습니다.

- 아래 데이터셋은 사용할 SAS 데이터 세트의 일부입니다. 

 

SE22017042010332270.png

 

 lookup 테이블로 사용할 자료

- 아래 표에는 각 ‘연도’와 ‘월’에 대한 “예산 금액”이 들어 있습니다.

- 각 행은 ‘월’을 나타내고 각 열은 ‘연도’를 나타냅니다. 

 

SE22017042010333470.png

 

▷ 우리는 Lookup 테이블의 예산 금액 SAS 데이터셋(orion.profit)의 실제 금액(profit변수)”과 결합할 것입니다.

 

SE22017042010334570.png

 

▶ 그럼, Lookup 테이블로 사용할 다차원 배열을 고려해보겠습니다.

▷ 예를 들어, 아래 표처럼 우리는 ‘Logistics’회사의 2007년도 1월(YYMM변수)을 기준으로, 예산표에서 2007년 1월에 해당하는 예산 금액 1,590,000달러 값을 가져올 것입니다.

 

SE22017042010340370.png

 

 실제 이익 예산 이익 비교하는 작업을 위한 프로그램은 다음과 같습니다.

- 여기서 중요한 점은 예산자료는 SAS 데이터셋으로 존재하지 않는다는 점입니다.(즉, 예산표는 서류로만 갖고 있다고 가정합니다.)

- 따라서 아래 프로그램의 음영부분처럼, 2 5열(5개년도 2개월 예산금액) 형태의 배열을 생성하여 활용할 것입니다.

 

SE22017042010341770.png

 

▶ 프로그램의 실행 과정을 살펴보도록 하겠습니다.

 

 

 ▷ 제일 먼저 data이 실행됩니다.

 

SE22017042010355770.png

  

- 실행 전 단계인 컴파일 단계에서, 2행 5열 B배열에 10개 값이 이미 할당되어 있는 것을 확인할 수 있습니다.

 

SE22017042010351670.png

 

budgetamt 데이터셋에 포함하지 않을 변수들을 표시해둡니다또한 관측번호를 나타내는 _N_값은 1이 입력됩니다.

 

SE22017042010363970.png

 

 

▷ 다음으로는 set문이 실행됩니다.

옵션으로, profit 데이터셋에서 Sales변수 값이 있는 상위 두 개의 관측치만을 가져오도록 지정한 것을 알 수 있습니다.

 

SE22017042010365870.png

 

배열 값들은 변동 없이 그대로 있습니다.

 

SE22017042010373170.png

 

- profit 데이터셋의 첫 번째 자료를 읽어왔습니다.

 

SE22017042010372270.png

 

 

▷ 이어Y변수와 M변수을 생성합니다.

- YYMM변수에 대해 year함수와 month함수를 사용하여 연도와 월을 추출합니다.

 

SE22017042010375870.png

 

- B 배열 값들은 여전히 그대로 있습니다.

 

SE22017042010381170.png

 

Y변수와 M변수(연도와 월)는 각각 2007, 1의 값을 할당 받은 것을 확인할 수 있습니다.

 

SE22017042010382470.png

 

▷ 다음으로는 BudgetAmt변수가 생성됩니다.

 

SE22017042010390470.png

 

- B배열의 (1, 2007)자리에 있는 값을 가져와 BudgetAmt값으로 할당합니다.

 

SE22017042010385570.png

 

이후run;이 실행되어 PDV에 있는 결과가 반출(output)됩니다

 

 

▷ 그리고 위와 같은 과정이 반복되어, profit자료의 두 번째 행에 대해 B배열의 (2, 2007)자리값이 BudgetAmt변수값에 할당됩니다.

 

SE22017042010400370.png

 

SE22017042010401570.png

 

 

 감사합니다 ^^ 

 

 

Version history
Last update:
‎06-17-2020 03:27 AM
Updated by:
Contributors

sas-innovate-white.png

Our biggest data and AI event of the year.

Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.

Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.

 

Register now!

Article Labels
Article Tags