SAS Base, A00-211 Crambible 

SAS 베이스 자격증


QUESTION NO: 71


Given the following code:


proc print data=SASHELP.CLASS(firstobs=5 obs=15); 

where Sex='M';
run;


How many observations will be displayed?


A. 11
B. 15
C. 10 or fewer 

D. 11 or fewer


proc 에서 


firstobs=숫자, 이 숫자번째에서 osbervation을 시작하란 뜻이고요. 

obs = 숫자,, 이 숫자번째까지 observation을 가져오란 뜻입니다. 


(firstobs=5 obs=15); 라고 되어있으니까 5번째부터 15번쨰까지 가져와야하는데요. 

그렇다면 15-5+1 = 11개일것 같지만 더 적은 이유는, where에서 조건이 걸려있기 때문입니다. 즉 성별이 여자일땐 불러오지 않으니까 더 적을 수 있겠죠. 



Answer: D 


반응형

SAS Base, A00-211 Crambible 

SAS 베이스 자격증


QUESTION NO: 70


The following SAS program is submitted; 


data combine;
country = 'Italy, Russia, ireland';
found = find(country, 'i');

run;

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


A. 1
B. 12
C. Italy 

D. Russia


find(변수, 찾고자 하는 문자) 명령어를 사용하면 몇번째 자리에 그 문자가 있는지 알려줍니다. 단, 대소문자를 구별해야합니다. 


find(country, 'i') 경우, country 변수 안에 찾고자하는 i 문자가 몇번째 있느냐란 물음이고, 12번째에 i가 오게 됩니다. 참고로 , 공백 다 자리 차지 합니다. 


Answer: B 



반응형

SAS Base, A00-211 Crambible 

SAS 베이스 자격증


QUESTION NO: 69


The following SAS program is submitted: 


data work.total;
set work.salary(keep = department wagerate); 

by department;
if first.department
then payroll = 0;
payroll + wagerate;
if last.department
run;


The SAS data set WORK.SALARY, currently ordered by DEPARTMENT, contains 100 observations for each of 5 departments.


What is the result?

A. The WORK.TOTAL data set contains 5 observations. 

B. The WORKTDTAL data set contains 100 observations. 

C. The WORKTOTAL data set contains 500 observations. 

D. The program fails to execute due to errors.



by department; 라고 하면 set 구문에서 department와 wagerate 변수를 가져오는데 by라는 명령어를 통해 department라는 변수를 지정하게되면 이때 자동적으로 first / last 값이 생기게 됩니다. 비슷한 문제 그 전에몇번 다뤘었죠. 즉, department 값이 A부서 여러개, B부서 여러개 이렇게 정렬이 된 상태니까 A부서 여러개 나올때의 첫번째 값이 first로, A부서의 마지막 값이 last 값으로 PDV상에 입력이 됩니다. 물론 이것들은 결과값으로 나오지는 않고요. 


문제상에서 각 5개의 부서가 있고 각 부서마다 100개의 observations이 있다고 하네요. 


if first.department
then payroll = 0;
payroll + wagerate;


여길 보면, department가 첫번째 값이면, payroll이라는 변수를 만들어 0이라는 값을 지정해주고 여기에 wagerate를 더하라는 얘기입니다. 


if last.department 보면 각 부서별 observation의 마지막 값을 보여주라는 얘기입니다. 얘네만 결과로 보여달라는 얘기라서 답은 A입니다. 

 


Answer: A 


반응형

SAS Base, A00-211 Crambible 

SAS 베이스 자격증


QUESTION NO: 68


Given the SAS data set PEPM.STUDENTS: PERM.STUDENTS 


NAME AGE
--------- ------ 

Alfred 14
Alice 13

Barbara13
Carol 14
The following SAS program is submitted:


libname perm 'SAS data library'; 

data students;
set perm.students;
file 'file specification';

put name $15. @5 age 2.;
run;


What is written to the output raw data file?

A. ----I----10---I----20---I----30 

    Alfred 14 Alice 13 Barbara 13 Carol 14


B. ----I----10---I----20---I----30 

    Alfr14 Alic13 Barb13a Carol 4


C. ----I----10---I----20---I----30 

    Alfr14ed Alic130 Barb13ara Caro141


D. ----I----10---I----20---I----30 

    Alfred14 Alice13 Barbara13 Carol14


PERM이라는 라이브러리에 NAME과 AGE의 변수를 가진 STUDENTS라는 파일이 있습니다. 


perm.studnets 즉, perm 라이브러리에 있는 students 파일을 불러와서 students라는 데이터를 만들려고 하는데요. file을 해당경로에 저장하려고 합니다. 이때 파일은 name과 age가 들어가고요. output 파일이 어떤 형태로 들어갈지 고르는 문제인데요. 



put name $15. @5 age 2.; 여길 다시보면, 

name이라는 변수는 문자형변수로($) 길이를 15자리까지 할당하고, age라는 변수는 @5, 즉 5번째 자리부터 2자리까지 읽어서 넣으라는 얘기입니다. 


Alfred 14를 예를들어보면 

name이라는 변수 아래 Alfred를 넣고, 이 변수는 15자리까지 넣을 수 있는 자리확보가 되었는데요. age라는 변수에는 @5, 즉 5번째자리부터 age값을 넣으라고 하니까 14라는 age값이 강제로 5번째자리부터 들어가게 되어서 결국 Alfr14가 됩니다. 



Answer: B 


반응형

SAS Base, A00-211 Crambible 

SAS 베이스 자격증 


QUESTION NO: 67

Given the raw data file AMOUNT: 

----I---- 10---I----20---I----30
$1,234

The following SAS program is submitted: 

data test;

infile'amount';
input@1 salary 6.; 

if_error_thendescription = 'Problems'; 

else description = 'No Problems';
run;


What is the result?

A. The value of the DESCRIPTION variable is NoProbl.

B. The value of the DESCRIPTION variable is Problems.
C. The value of the DESCRIPTION variable is No Problems.

D. The value of the DESCRIPTION variable can not be determined.


amount를 불러와서 test라는 데이터를 만들려고 하는데요. input구문을 이용해서 첫번째부터 불러와서 6자리 salary변수를 만들려고 하는데요. if 구문에서 만약 에러가 발생하면 'Problmes'라는 description을 만들고, 에러가 없으면 'No Problems'라고 표현하라는것입니다. 


에러가 나는지 안나는지 봐야하는데요. 왜냐하면 salary변수에는 $ 표시가 없는걸 보니 수치형 변수라고 선언했는데 amount 보니까 $ (달러) 도 있고 , 도 있어서 문자형 변수입니다. 문자형 변수를 숫자형변수로 바꾸려고 하니 에러가 생기게 되겠죠.


Answer: B 


반응형

+ Recent posts