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 |
1 |
0 |
0 + 100 |
X |
A |
200 |
0 |
0 |
100+200 | X |
A |
100 |
0 |
1 |
300+100 |
O |
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 |
A |
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 |