SAS BASE

Crambible / sas 문제 58

표독's 2016. 1. 31. 16:19




1. by에서의 first.변수과  last.변수명




    ** 위의 문제는 data step에서 사용했으므로 first.변수명, last.변수명 2개의 임시 변수가 생성 됨 /*임시 변수란 pdv상에만 존재하며, output으로 나타나지 않는다. */ 



2. 문제 풀이

   1) BY SORTING

      department에 대하여 오름차순 정렬이 되어있다.

     

  work.salary 데이터 셋

DEPARTMENT 

WAGERATE 

 A

100 

 A

200

 A

100

 B

500

 B

300

 B

200

 

 2) IF 

      SORT가 되면 PDV상에 임시 변수 first.department와 last.department가 생성된다.

      FIRST.DEPARTMENT가 참이면, 즉 1이면

      then payroll에 0의 값을 할당하고. payroll + wagerate를 해줘라 (중첩해서 쌓이게 된다.      누적 됨)

    

     그리고 LAST.DEPARTMENT가 참인 값만 내보내라.


     결과 / LAST.DEPARTMENT가 참인 값만 나오게 되며, 중첩된 PAYROLL 값을 가진다.

              FIRST.DEPARTMENT를 만나면 PAYROLL은 다시 초기화 된다.

PDV

 DEPARTMENT

WAGERATE 

FIRST.DEPARTMENT 

LAST.DEPARTMENT 

PAYROLL 

 출력여부(2번째 IF 영향)

A

100

0 + 100

A

200 

100+200

A

100 

300+100

B

500

 1

 0

0+500

 X

B

300

 0

 0

 500+300

 X

B

200

 0

 1

 800+200

 O

 

 

 

 

 

 


 3) 답 (OUTPUT)

 

SALARY 

WAGERATE 

PAYROLL 

100 

400 

B

200 

1000 


      

답은 C : PAYROLL은 각 WORK.SALARY 데이터셋의 각 DEPARTMENT의 총 합을 가진다.

  


 




'SAS BASE' 카테고리의 다른 글

Crambible / sas 문제 60  (0) 2016.02.10
Crambible / sas 문제 59  (0) 2016.01.31
Crambible / sas 문제 57  (0) 2016.01.31
Crambible / sas 문제 56  (0) 2016.01.31
Crambible / sas 문제 55  (0) 2016.01.31