Crambible / sas 문제 10 특정 라이브러리의 모든 데이터 셋을 보여주는 PROGRAM을 원한다. PROC CONTENTS DATA = sasuser._all_; RUN; **A, B 보기의 sasuser.all 의 경우 그 데이터 명을 찾아 낼 것이다. (all에 접근)그러나 _all_은 _error_과 같이 시스템적 접근을 의미한다. SAS BASE 2016.01.28
Crambible / sas 문제 9 문제 보기이 문제에서 merge work.employee work.salary;BY FNAME;두 데이터 셋을 MERGE 함수로 합치는데, BY로 FNAME을 지정해주어 기준 변수로 사용되게 하였다. 1. 문제 풀이같은 이름의 변수가 필요하므로 WORK.SALARY 데이터 셋의 NAME 변수를 FNAME으로 바꿔 주어야 한다. MERGE에서 변수 이름을 바꿀 때에는보기 D 처럼,merge work.employee work.salary(rename = (name = fname)); 과 같이 바꿔 주어야 한다. SAS BASE 2016.01.28
Crambible / sas 문제 8 DO UNTIL과 DO WHILE의 차이점DO UNTIL (조건문)과 DO WHILE (조건문)이 있을 때 1. DO UNTIL은 조건문과 상관 없이반복문을 우선 실행한다.따라서 (prod gt 6)을 먼저 보는게 아니라 prod +1 ; 을 먼저 실행.따라서 초기값 0 부터 시작해 1 .. 2 .. 3 .. 4 .. 5.. 6.. 7 하면서 조건문 (prod gt 6)과 계속적으로 비교 7이 되었을 때 빠져 나온다.따라서 답은 B : 7 2. DO WHILE은 조건문을 우선 고려한다.조건문을 반복 초기에, 즉 DO문을 실행하기 이전에 논리식을 평가함. 문제에서 DO UNTIL이 아니라 DO WHILE이라면(prod gt 6)이 맞지 않으므로 그냥 나오기 때문에 결과는 0이 나올 것이다. SAS BASE 2016.01.28
Crambible / sas 문제 7 1. tranwrd 변수 = tranwrd(변수, 바꾸고싶은 문자, 바뀔 문자); trawrd의 기능 1 : Length를 200으로 맞춘다. 기능 2 : 문자를 바꾼다. '214 London Way' // length 14 에서Way -> Drive'214 London Drive' // length 200 SAS BASE 2016.01.27
Crambible / sas 문제 5 1. footnote footnote는 output에서 아랫 부분에 데이터와 관련없이 설정한 문자를 보여주는 옵션이다.설정 후에 (여기서는 4개의 footnote) 그 상위 단계를 재 설정해주면그 하위단계는 삭제된다. 여기서는 footnote 1-4가 지정된 뒤에footnote 2를 'All Products'라고 재 지정footnote 3-4는 사라지게 되고footnote 1-2만 남게 된다.따라서 답은 B SAS BASE 2016.01.27
Crambible / sas 문제 4 문제 수정 이 문제는 오류가 있다고 한다. data sasuser.one two sasdata.three; 가 아니라 data sasuser.one sasuser.two other;if x=5 then output sasuser.one;if y SAS BASE 2016.01.27
Crambible / sas 문제 3 1. SET함수와 LENGTH문제 WORK.DEPT1의 LENGTH는 5WORK.DEPT2의 LENGTH는 7 두 개의 데이터 셋을 SET으로 다음과 같이 병합시킨다.SET WORK.DEPT1 WORK.DEPT2; 이 경우 데이터 셋 WORK.ACCOUNTING은 SET 구문의 첫 번째 데이터 셋의 LENGTH를 따르므로 5가 맞다. 따라서 답은 B. 주의 사항 : LENGTH jobcode $ 8; run;에서 8이 length값으로 지정되지 않는 이유는 이미 정의가 되었기 때문이다.이 length가 작동하게 하려면 data와 set 구문에 넣어 주어야 한다. SAS BASE 2016.01.27
Crambible / sas 문제 2 1. set 함수SET data-set1 data-set2 ; 는 one to one readingSET data-set1; SET data-set2; 는 concatenatingSET data-set1 data-set2; BY ; 는 interleaving 2. (in = 변수명)set으로 데이터를 합칠 때 (in = 변수명) 은 어디서 왔는지를 체크하는 것이다. 예를 들어, work.people(in = inemp) 경우에는 work.people에서 불러온 데이터만 inemp라는 변수에 1이라는 값을 pdv상에서만 넣어준다. (output에 나오지 않음) 3. 문제 풀이PDV X Y inemp insal a 1 0 b 1 0 c 1 0 d 1 0 e 1 0 f 0 1 g 0 1 h 0 1 i 0 1 .. SAS BASE 2016.01.27