SAS Base, A00-211 Crambible,

SAS 크램바이블, SAS 베이스 자격증 문제풀이   



QUESTION NO: 3


The following SAS program is submitted: 


data work.accounting; 


set work.dept1 work.dept2; 

jobcode= 'FA1';
length jobcode $ 8;
run;


A character variable named JOBCODE is contained in both the WORK.DEPT1 and WORK.DEPT2 SAS data sets. 


The variable JOBCODE has a length of 5 in the WORK.DEPT1 data set and a length of 7 in the WORK.DEPT2 data set. 


What is the length of the variable JOBCODE in the output data set?


A. 3 

B. 5 

C. 7 

D. 8 




먼저 2번 문제 확인해보셨나요? set 이용해서 두개의 데이터를 합치는 질문입니다. 그것도 확인해보시고요~ 


이 문제는 우선 두 개의 데이터를 set을 이용해서 합칩니다. 

SET WORK.DEPT1 WORK.DEPT2; 여기에서 work.dept1 데이타안에 있는 변수들이 불러들어오겠죠. 이 안에있는 jobcode 변수의 length도 설정되었겠네요. 그 다음에 work.dept2 데이타가 불러오는데, 이 안에서도 jobcode 변수가 불러들어올때 length는 이미 work.dept1 데이타에서 불러온 jobcode의 length에 맞게 길이가 5로 설정되어서 불러오게 됩니다. 그래서 길이가 5이상의 애들은 잘리게됩니다. 


그래서 답은 B 입니다. 


왜 8이 아니냐하면~ 

length jobcode $ 8; 이 문장이 set 함수 이후에 나와서 그렇습니다. 이미 work.dept1에 length가 설정되어있어서 이후에 length구문이 적용되지 않다는거죠. 그래서 length를 8로 하려면 set 이전에 length jobcode $ 8; 이걸 넣으면 됩니다!  



ANSWER : B


반응형

+ Recent posts