전체 글 132

Crambible / sas 문제 12

1. DODO는 조건문이 없을 때는 반복문을 실행 한다. 여기서는 YEAR과 MONTH 모두 반복문을 가지고 있다. 2. OUTPUTOUTPUT은 계산결과를 저장하는 것이다. OUTPUT에 들어오면 뒤의 구문은 보지도 않고 결과로 저장된다. 3. OUTPUTYEAR MONTH X 1 1 1 1 2 2 1 3 3 1 4 4 1 5 5 1 6 6 1 7 7 1 8 8 1 9 9 1 10 10 1 11 12 1 12 13 2 1 14 ~ ~ ~ 5 12 60 DO year // DO month // x+1 각각에서 반복문을 실행한뒤 output이 있기 때문에한 번 한 번 모두 output으로 내준다. 21번 처럼 output이 없는 경우의 문제도 있다.

SAS BASE 2016.01.28

Crambible / sas 문제 11

1. 문제 수정 rail -> fail 2. 문제 풀이 work.employee와 work.salary 데이터 셋을 set, by 구문으로 fname에 대해 각각 내림차순 정렬 해주었다. 그 뒤에 merge by에서는 위의 두 데이터 셋을 오름차순으로 정렬해 주기를 원하기 때문에일치 하지 않는다. 따라서 답은 D: The data sets were not merged in the order by which they were sorted. 해석 : 데이터 셋들은 그들이 정렬되었던 순서대로 합쳐지지 않기 때문이다.

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 문제 6

문제 수정Printing 750 문자변수와 숫자변수 사이의 공백이 1개 인 것 처럼 나와 있으나밑의 input dept $ 1-11 number 13- 14; 구문으로 봤을 때 공백이 하나는 아니다. 또한 보기의 A,B는 II로 나와있는데 ||로 하는 것이 맞다.C,D의 경우에 ||이 TRIM함수 뒤에 위치되어야만 한다. 원하는 값 'Printing750'1. ||||은 두 값을 이어주는 함수이다. 2. TRIMTRIM 함수는 'PRINTING '에서 뒤쪽에 있는 공백을 제거해 주는 함수이다. 3.PUT / INPUT PUT (변수, 길이); 숫자형을 문자형으로 바꿔 준다. INPUT(변수, 길이);문자형을 숫자형으로 바꿔 준다. 문제해결 'printing '과 750을 합쳐주어야 한다.여기서 print..

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