A00-211 Crambible Dump

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


QUESTION NO: 7


The following SAS program is submitted: 


data one;
addressl= '214 London Way';
run;

data one;
set one;
address = tranwrd(address1, 'Way', 'Drive'); 

run;

What are the length and value of the variable ADDRESS?


A. Length is 14; value is '214London Dri'.
B. Length is 14; value is'214 London Way'.

C. Length is 16; value is'214 London Drive'. 

D. Length is 200; value is'214 London Drive'.



데이타 one을 만드는데, address1이 '214 London Way' 가 들어갑니다. 

길이를 따로 설정해주지 않았기때문에 자동으로 '214 London Way' 길이만큼 들어가겠죠.

공백까지 같이 세어보니 길이가 14 입니다. 


또 데이타 one을 만드려고하는데 그 전에 one을 만들었으니 다시 덮어쓰고 있습니다. 

그런데 set one 이 있으니, 그 전에 데이타 one을 불러와서 씁니다. 

이때 address라는 변수를 만드는데, transwrd(address1, 'Way', 'Drive) 라고 되어있네요. 


즉, 변수 = transwrd(변수, 바꾸고싶은 문자, 바꾼 후의 문자); 의 명령어인데요. 

이 transwrd는 Lenght 를 200으로 맞추고요. 문자를 바꾸는 역할을 합니다. 


따라서 214 London Drive (length 200) 으로 바뀌게 되겠죠.


Answer: D


반응형

SAS Base, A00-211 Crambible 

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


QUESTION NO: 6


Given the raw data record DEPT: 


----|----10---|----20---|----30
Printing 750   <- Printing (공백) 750이 있습니다!

The following SAS program is submitted: 

data bonus;

infile'dept';
inputdept$ 1-11 number 13- 15; 

<insert statement here>
run;


Which SAS statement completes the program and results in a value of 'Printing750' for the DEPARTMENT variable?


A. department = dept II number;
B. department = left(dept) II number;
C. department = trim(dept) number;
D. department = trim(dept) put(number,3.);



DEPT라는 데이타에 Printing 750 (중간에 빈칸이 있네요)이 들어가있는데요. 

infile이라는 명령어로 DEPT를 불러와서 bonus라는 데이타를 만들려고 합니다. 

이때 dept변수는 1에서 11자리까지, number변수는 13에서 15자리까지 오게 됩니다. 


보기중에 어떤 명령어를 넣게되면, department 변수에 'Printing750' 이 나오게 될까, 라는 문제입니다. 보니까 공백이 사라졌네요. 그래서 printing과, 750을 어떻게 합치면 되는지가 문제 핵심입니다. 


printing뒤에 공백이 없어야하고요,  - 이땐 trim이라는 명령어를 사용합니다. 

|| 는 문자와 문자를 연결해주는 역할을 합니다. 

하지만 750은 숫자입니다. 문자가 아니라는거죠. 그래서 얘를 문자로 변환시키려면 put 명령어가 필요합니다. 


 문자를 숫자형으로 바꿀땐, INPUT(변수, 길이)

 숫자를 문자형으로 바꿀땐, PUT (변수, 길이) 


Answer: D


반응형

SAS Base, A00-211 Crambible,

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


QUESTION NO: 5


The following SAS program is submitted: 


footnote1 'Sales Report for Last Month'; 

footnote2 'Selected Products Only'; 

footnote3 'All Regions';

footnote4 'All Figures in Thousands of Dollars'; 


proc print data = sasuser.shoes;
footnote2 'All Products';
run;



Which footnote(s) is/are displayed in the report?


A. All Products
B. Sales Report for Last Month All Products
C. All Products All Regions All Figures in Thousands of Dollars
D. Sales Report for Last Month All Products All Regions All Figures in Thousands of Dollars



Footnote는 output에서 아랫부분에 데이터와 상관없이 설정한 문자값을 보여주는 명령어인데요. 

처음에 footnote가 1~4까지 지정이 되었고요. proc print 다음에 다시 footnote2 가 재설정 되었습니다. 이처럼 2번이 재설정되었으면 그 하위단계는 삭제됩니다. 


2번이 재설정되었으니 3~4번은 사라지고 1~2번만 남습니다. 


Answer: B 


반응형

SAS Base, A00-211 Crambible,

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


QUESTION NO: 4


Given the SAS data set SASDATA.TWO: SASDATA.TWO X Y

5 2
3 1
5 6


The following SAS program is submitted: 


data sasuser.one two sasdata.three;

set sasdata two;

if x = 5 then output sasuser.one; 

else output sasdata two;
run;


이 문제는 오류가 있어서 다음과 같은 내용으로 질문을 수정해야한다고 합니다. 참고하세요. 


data SASUSER.ONE SASUSER.TWO OTHER;

set SAS.TWO;

  if x=5 then output sasuser.one;

  if y<5 then output sasuser.two;

output;

Run; 



What is the result?


A. data set SASUSER.ONE has 5 observations 

    data set SASUSER.TWO has 5 observations 

    data set WORK.OTHER has 3 observations 


B. data set SASUSER.ONE has 2 observations 

    data set SASUSER.TWO has 2 observations 

    data set WORK.OTHER has 1 observations


C. data set SASUSER.ONE has 2 observations 

    data set SASUSER.TWO has 2 observations 

    data set WORK.OTHER has 5 observations


D. No data sets are output. 

The DATA step fails execution due to syntax errors.





SASDATA라는 라이브러리에 X 와 Y 변수를 가지고 있는 TWO라는 데이타가 있는데요.  

X Y

5 2 

3 1 

5 6 

이런 데이타입니다. 


이 데이타를 불러와서, 

1) SASUSER라는 라이브러리에 One 데이타를, 

2) SASUSR 라는 라이브러리에 Two 데이타를, 

3) Work 라이브러리에 other란 데이타를 만들려고 합니다. 


set SASDATA.TWO 라고 되면, 데이타가 한줄씩 불러오게 되는데요. 

ONE    TWO   OTHER

X  Y      X  Y      X   Y

5   2      5   2      5   2    <- 첫번째 데이터를 불러왔을때

5   2      5   2                 <- 첫번째 두번째, IF값 (X=5 라서 ONE, Y < 5 TWO에 들어감)

3   1      3   1      3   1    <- 두번째 데이터를 불러왔을때 

             3   1                  <- 첫번째 두런째, IF라인 값 

5  6       5   6      5   6     <- 세번째 데이터를 불러왔을때 

5  6                                <- 첫번째 두번째, IF 라인 값 


따라서 One 데이타에는 5개, Two 데이타에는 5개, Other데이타는 3개가 되겠습니다. 


Answer: A 


반응형

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