CRAMBIBLE 문제풀이 69

Crambible / sas 문제 73

1. TRUNCOVER length에서 Type를 문자열 5자리 수로,Color를 문자열 11자리 수로 지정했다. 그런데 여기에서 넣으려는 값daisyyellow는 11자리 수 이므로 5자리 보다 더 길다. (그릇이 더 작다.) ERROR가 발생해야 하지만, TRUNCOVER 옵션이 ERROR를 방지하고, 넘치는 것들을 잘라내준다. 따라서 5자리 daisy는 Type에 들어가고yellow는 잘라내어지고, Color에는 결측값이 들어간다. 답은 D.

SAS BASE 2016.02.11

Crambible / sas 문제 72

1. 코드해석 The SAS data set named WORK.SALARY contains 10 observations for each department, and iscurrently ordered by Department. The following SAS program is submitted: WORK.SALARY는 각 부서(department)별로 10개의 관찰치를 가지고 있는데, 부서들은 정렬이 되어있다. data WORK.TOTAL;set WORK.SALARY(keep=Department MonthlyWageRate);/* WORK.SALARY에서 Department와 MonthlyWageRate 변수를 가져온다 */by Department;/* Department에 대하여 오름차순 정렬한다 ..

SAS BASE 2016.02.11

Crambible / sas 문제 71

1. first obs, obs PROC 스텝에서 FIRST OBS와 OBS는 관찰치를 제한해 준다. FIRSTOBS = 숫자의 경우 숫자 번째 관찰치에서 시작하라는 의미이고 OBS = 숫자의 경우 숫자 번째 까지 관찰치를 가져오라는 의미이다. 이경우 5번 째부터 15번 째까지 관찰치를 가져오라고 했으므로 15-5+1 즉 11개가 될 것인데, 답 D에서 fewer가 나오는 이유는 기존 Sex 변수에서 'M'의 값이 15개보다 적을 수 있기 때문이다.

SAS BASE 2016.02.11

Crambible / sas 문제 69

1. SET,BY, 에서의 FIRST, LAST FIRST와 LAST 변수는 SET에서 BY로 정렬해주었을 때 자동적으로 생기는 임시변수이다.(PDV상에서만 존재) 코드를 해석해보면 따로 PDV를 그리지 않아도 되는 것을 알 수 있다. if first.department이면 payroll = 0; 으로 지정하고wagerate와 합쳐준다. 그리고 last.department인 경우만 보여준다. 즉 last.department의 값이 1인 경우에만 보여주라는 얘긴다. 문제에서 department는 100개의 관찰치를 가졌지만 부서별로 5개씩의 관찰치를 가졌다고 하고 있으므로 last.department는 5개가 나온다. 따라서 답은 A.

SAS BASE 2016.02.11

Crambible / sas 문제 68

1. raw data file 만들 때의 변수와 관찰치 (PUT) 이 문제에서는 put name $15. @5 age2.; ** @는 들어갈 위치를 지정해주는 역할을 한다. 풀어보면문자형 변수 name을 15자리까지 할당 하고,age를 5번 째 자리부터 2자리 읽어라. 여기에서 SAS는 name변수를 위해 문자형변수로 15자리까지 할당해주었으나뒤의 @5 때문에 age를 덮어버리게 된다. 따라서 Alfr14과 같은 형태가 나오게 된다. 답은 B.

SAS BASE 2016.02.11

Crambible / sas 문제 65

0. 문제 풀이 세 개의 변수들 prefix, middle, end를 - 기호로 연결해주기를 원하고 있다.**middle 변수에서 '6465 '에 공백이 있다는 것을 알아야 한다. 1. 문자열 결합의 종류 (CAT, CATX, !!) 1) CAT 보기 A 에서의 CAT은 연결을 그대로 한다. 이 경우 결과는 -5056465 09090 2)CATX 보기 B에서의 CATX는 공백은 없애주고, 첫 번째는 연결 구분자. 이 경우 결과는 505-6465-09090 3) !! 그냥 합쳐주는 기능이다. C. 이 경우에는 middle " 이 qutation unbalanced 하다. D. 이 경우에 trim기능 (공백 제거기능)이 없기 때문에 결과는 505-6465 -09090 따라서 답은 B.

SAS BASE 2016.02.11