SAS Base, A00-211 Crambible 

SAS 베이스 자격증 


QUESTION NO: 12


The following SAS program Is submitted


data work.sales;

do year = 1 to 5;
do month=1 to 12;

x+1; 

output; 

end; 

end; 

run;


How many observations are written the WORK SALES data set?


A. 0 

B. 1 

C. 5 

D. 60



여기서 두개의 do 반복문이 있습니다. 이때 조건문이 없는데, 이렇게 조건문이 없으면 반복문을 바로 실행하게 됩니다. 

참고로 output은 계산결과를 저장하고요, 

 

year    month     x 

(먼저 do year 1부터 5까지 하는데, 먼저 1로 시작합니다.)

1          1            1  (x 값이 지정되어있지 않아서 초기값 0 에서 시작해서 x+1 = 1 이 됩니다)

1          2            2   

(여전히 do 반복문 중 1에 있는 상태에서 month 반복이 1부터 12까지 있게 됩니다.)

~~~~~~~~~~ 중략 12까지하고 do year에서 2로 가게 됩니다. 

2          1            14

2          2            15

~~~~~~~~~~~중략 이렇게 

5          12          60


따라서 총 60개 (=5 x 12) 의 observations 생기게 됩니다. 



Answer: D 



반응형

'SAS > Base Programmer' 카테고리의 다른 글

[A00-211, Crambible] SAS Q14  (0) 2017.05.23
[A00-211, Crambible] SAS Q13  (0) 2017.05.23
[A00-211, Crambible] SAS Q11  (0) 2017.05.23
[A00-211, Crambible] SAS Q10  (0) 2017.05.22
[A00-211, Crambible] SAS Q9  (0) 2017.05.22

SAS Base, A00-211 Crambible 

SAS 베이스 자격증 

QUESTION NO: 11


The following SAS program is submitted:


proc sort data = work.employee; 

by descending fname;

proc sort data = work.salary;
by descending fname;

data work.empdata;


merge work.employee work.salary;
by fname;
run;



Why does the program fail to execute?


A. The SORT procedures contain invalid syntax.
B. The merged data sets are not permanent SAS data sets.
C. The RUN statement was omitted alter each or the SORT procedures. 

D. The data sets were not merged in the order by which they were sorted.



프로그램 실행이 왜 실패했는지에 대해 이유를 찾는 문제입니다. 

work.employee와 work.salary 데이타 셋이 fname 변수를 기준으로 내림차숨으로 정렬이 되었습니다. merge 명령어를 통해 두 데이타셋을 by fname, 즉 오름차순으로 합치려고 하네요. 그래서 에러가 납니다. 


Answer: D 



반응형

'SAS > Base Programmer' 카테고리의 다른 글

[A00-211, Crambible] SAS Q13  (0) 2017.05.23
[A00-211, Crambible] SAS Q12  (0) 2017.05.23
[A00-211, Crambible] SAS Q10  (0) 2017.05.22
[A00-211, Crambible] SAS Q9  (0) 2017.05.22
[A00-211, SAS Crambible] SAS Q8 - do until 문제풀이  (0) 2017.05.22

SAS Base, A00-211 Crambible 

SAS 베이스 자격증 



QUESTION NO: 10


Which program displays a listing of all data sets in the SASUSER library?



A. proc contents lib =sasuser.all; run;

B. proc contents data =sasuser.all; run; 

C. proc contents lib =sasuser._alI_; run; 

D. proc contents data =sasuser._all_; run;




SASUSER library안에 있는 모든 데이타 리스팅을 보여주는 명령어를 찾는 문제입니다. 


proc content data 를 사용해야하고요. 만약 sasuser.all인 경우 요 데이타의 이름으로 된것이 불러오는겁니다. 모든 데이타를 불러오기 위해서는 _all_을 사용해야해서 답은 D 입니다. 


Answer: D 


반응형

SAS Base, A00-211 Crambible 

SAS 베이스 자격증 


QUESTION NO: 9

The SAS data sets WORK.EMPLOYEE and WORK.SALARY are shown below: WORK.EMPLOYEE WORK.SALARY fnameage name salary Bruce 30 Bruce 25000
Dan 40 Bruce 35000
Dan 25000


The following SAS program is submitted: 


data work.empdata;

by fname;
totsal+ salary;
run;


Which one of the following statements completes the merge of the two data sets by the FNAME variable?


A. mergework.employee 

    work.salary(fname = name);


B. mergework.employee
    work.salary(name = fname);

C. mergework.employee work.salary(rename = (fname = name));


D. mergework.employee work.salary(rename = (name = fname));




work.employee데이타에는 fname, age라는 변수가 있는데요. 

work.salary데이타에는 name, salray라는 변수가 있습니다. 


기준 value인 FNAME으로 두 데이타를 합치려고 합니다. 그래서 두 데이타셋에는 FANME이 있어야 하겠죠. 보니까 work.salry 데이타의 name변수를 rename이라는 명령어를 통해 fname으로 바꿔야합니다 


salary데이타셋에 있는 name 변수를 fanem으로 바꾼 다음 work.employee와 work.salary를 합친다~ 라는 내용으로 답이 D가 되겠네요. 



Answer: D

반응형

SAS Base, A00-211 Crambible 덤프

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


QUESTION NO: 8


The following SAS program is submitted: 


data work.sets;
do until (prod gt 6);
prod + 1;

end; 

run;


What is the value of the variable PROD in the output data set?


A. 6
B. 7
C. 8
D. (missing numeric)




DO UNTIL (조건문) 

 - 조건문과 상관없이 반복문을 먼저 실행합니다. 

즉, prod gt 6 (prod 값이 6보다 큽니까) 을 살펴보는게 아니라 곧바로 prod+1부터 시작하게 됩니다. 이때 prod 값을 미리 설정하지 않았기에 초기값이 0이므로 0부터 시작하게 되겠죠. 


1이 6보다 큽니까란 조건이 만족되지 않았기때문에 반복하게 됩니다. 그래서 반복하다가 prod가 7이된 상태에서 조건문인 7이 6보다 큽니까? 란 조건이 만족하게 되므로 end로 반복구문이 끝나게 됩니다. 따라서 prod값은 7이 됩니다. 




반면 같이 알아둬야할 DO WHILE (조건문)!! 

예를들어 질문이 do until이 아니라 do while이 되었다면... 


얘는 조건문부터 살피게 됩니다. 이 조건문부터 만족이 되면 그 다음 반복문이 실행이 됩니다. 

우선 prod값이 지정되지 않았으므로 초기값이 0이되는데요. 

그러면 조건문 (0 > 6) 이 만족되지 않겠죠. 그래서 반복문이 되지 않고 바로 빠져나오게 됩니다. 

그래서 값은 0이 되는거죠. 참고하세요.


Answer: B 


반응형

+ Recent posts