일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 아비무쌍
- 객관식 경영학
- 에듀윌특별판
- 모듈형 #산인공 #산업인력공단 #ncs #예시문제 #해설
- 부교공 면접
- 2024 부산교통공사 면접
- 강웅
- 노경찬
- 김윤상 객경 정오표
- 금강마신
- 신입사원 채용
- 객경
- 부교공
- 아비무쌍 #오존
- sas base
- 부산교통공사
- 객관식 경영학 정오표
- 토르마무
- 천소소
- 산업인력공단 #산인공 #ncs #모듈형 #정오표
- 코레일
- 에듀윌 봉모
- 무협
- 김윤상
- Today
- Total
나루다루
[SAS BASE] Q58. first & last & if 본문
QUESTION NO: 58
The following SAS program is submitted:
data work.total;
set work.salary(keep = department wagerate);
by department;
if first.department then payroll = 0;
payroll + wagerate;
if last.department;
run;
The SAS data set named WORKSALARY contains 10 observations for each department, and is
currently ordered by DEPARTMENT. Which statement is true?
A. The BY statement in the DATA step causes a syntax error.
B. The statement payroll +wagerate; in the DATA step causes a syntax error.
C. The values of the variable PAYROLL represent the total for each department in the WORK.SALARY data set.
D. The values of the variable PAYROLL represent a total for all values of WAGERATE in the WORKSALARY data set.
Answer: C
# 예시
# 구문 설명
- first.변수 : 변수 내의 여러 범주의 관측값들 중에서 범주의 각 첫번째 관측값에 1을 할당하고, 나머지 변수에는 0을 할당
- last.변수 : 변수 내의 여러 범주의 관측값들 중에서 범주의 각 마지막 관측값에 1을 할당하고, 나머지 변수에는 0을 할당
- first/last : 정렬이 돼야 사용가능. data step 내에서만 존재.(pdv상에서만 존재) -> 출력 x
- if 변수 <=> if 변수=1 : 변수=1 조건을 만족하는 레코드를 선택
- if 변수 then - : 변수=1 조건을 만족하면 then -을 실행.
- payroll + wagerate : payroll과 wagerate를 더한 후, payroll 변수에 할당함.
# 문제 풀이
- 첫번째 if문에서 first.department = 1이면 payroll에 0을 할당한다. 따라서 첫번째 관측치의 payroll에는 0이 할당된다.
- payroll+wagerate문에서 0+100이 되므로 첫번째 payroll에는 100이 할당된다.
- 마지막 if문에서 last.department = 1을 만족하는 레코드를 출력한다. 하지만 첫번째 관측치는 last.depatment가 0이므로 출력하지 않는다.
- 다시 첫번째 if문으로 돌아가서 두번째 관측치에 대해서 반복 수행한다.
- 두번째 관측치의 payroll에는 100+200인 300이 할당되고, 출력은 되지 않는다.
- 세번째 관측치의 payroll에는 300+300인 600이 할당되고, last.department가 1이므로 출력된다.
- 네번째 관측치는 first.department가 1이므로 payroll에 0을 할당한다. (리셋하는거)
- 다시 위의 사항들을 반복한다.
# 코딩 결과
'Study > SAS BASE' 카테고리의 다른 글
SAS BASE Q26. proc sort [수정] (0) | 2018.10.30 |
---|---|
[SAS BASE] informat 정리 (0) | 2018.05.30 |
[SAS BASE] Q57. ? (0) | 2018.05.23 |
[SAS BASE] Q56. le (0) | 2018.05.23 |
[SAS BASE] Q55. weekdate. (0) | 2018.05.23 |