base sas - weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · base sas...

34
Name: Batch timing: Date: BASE SAS Q1. 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 named WORK.SALARY contains 10 observations for each department, currently ordered by DEPARTMENT. Which one of the following is true regarding the program above? A. The BY statement in the DATA step causes a syntax error. B. FIRST.DEPARTMENT & LAST.DEPARTMENT are variables in WORK.TOTAL dataset. C. The values of the variable PAYROLL represent the total for each department in the WORK.SALARY data set. D. The values of the variable PAYROLL represent a total for all values of WAGERATE in the WORK.SALARY data set. Answer: C. For every BY group we get the sum of wagerate in the Payroll variable for each department. Q2. The following SAS program is submitted:

Upload: ngomien

Post on 10-May-2018

227 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Q1. 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 named WORK.SALARY contains 10 observations for each

department, currently ordered by DEPARTMENT.

Which one of the following is true regarding the program above?

A. The BY statement in the DATA step causes a syntax error.

B. FIRST.DEPARTMENT & LAST.DEPARTMENT are variables in WORK.TOTAL

dataset.

C. The values of the variable PAYROLL represent the total for each department in the

WORK.SALARY data set.

D. The values of the variable PAYROLL represent a total for all values of WAGERATE

in the WORK.SALARY data set.

Answer: C. For every BY group we get the sum of wagerate in the Payroll variable for

each department.

Q2. The following SAS program is submitted:

Page 2: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

data test;

set sasuser.employees;

if 2 le years_service le 10 then

amount = 1000;

else if years_service gt 10 then

amount = 2000;

else

amount = 0;

amount_per_year = years_service / amount;

run;

Which one of the following values does the variable AMOUNT_PER_YEAR contain if an

employee has been with the company for one year?

A. 0

B. 1000

C. 2000

D. . (missing numeric value)

Answer : D (missing). It returns missing value as amount will be 0.

SAS Log: NOTE: Mathematical operations could not be performed at the following

places. The results of the operations have been set to missing values.

Q3. The contents of the raw data file NAMENUM are listed below:

--------10-------20-------30

Joe xx

Page 3: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

The following SAS program is submitted:

data test;

infile 'namenum';

input name $ number;

run;

Which one of the following is the value of the NUMBER variable?

A. xx

B. Joe

C. . (missing numeric value)

D. The value can not be determined as the program fails to execute due to errors.

Answer : C. It is because number is defined as a numeric variable so it is expecting a

numeric value but it reads xx, so number will be a missing value.

Q4. How many of the following variable names will not produce errors in an assignment statement?

variable

var

1variable

var1

#var

_variable#

A. 0

B. 1

Page 4: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

C. 3

D. 6

Answer : C ; variable var var1. A variable cannot start with numeric or special characters

except _. You also cannot use special characters anywhere in the name either though

numeric values are allowed.

Q5. Suppose the variable 'Unit_Cost_Price' (numeric) contains both missing and non

missing values. What would the following code return?

proc sort data=ecsql1.price_list;

by Unit_Cost_Price;

run;

A. A new dataset work.price_list is created with Unit_Cost_Price sorted in ascending

order with missing values at the bottom of the dataset

B. The dataset ecsql1.price_list is sorted with Unit_Cost_Price sorted in descending

order with missing values at the bottom of the dataset

C. A new dataset work.price_list is created with Unit_Cost_Price sorted in descending

order with missing values at the top of the dataset

D. The dataset ecsql1.price_list is sorted with Unit_Cost_Price sorted in ascending

order with missing values at the top of the dataset

Answer : D. It is because missing values are considered as lowest values (ascending

order; they will be top of the data set)

Page 5: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Q6. The following SAS program is submitted:

dta work.il_corn;

set corn.state_data;

if state = 'Illinois';

run;

The keyword "data" is misspelled above. What happens to this program during the compilation

phase assuming "corn" is a valid libref?

A. The program fails due to syntax errors

B. The DATA step compiles but doesn't execute

C. The DATA step compiles and executes

D. None of the above

Answer : C. It compiles and executes as SAS assumed that the 'dta' was data. But it

leaves a warning in log window.

The log shows the following error :

WARNING 1-322: Assuming the symbol DATA was misspelled as dta.

141 run;

Q7. Which of the following is a valid statement about the VALUE range in the PROC FORMAT

procedure? It cannot be...

Page 6: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

A. A single character or numeric value

B. A range of character values

C. A list of unique values separated by commas

D. A combination of character and numeric values

Answer : D.

Q8. How many of the following statistics that PROC MEANS computes as default statistics?

Standard deviation

Range

Count

Minimum value

Variance

Mode

A. 2

B. 3

C. 4

D. None of the above

Answer : B. By default, PROC MEANS calculates count, mean, standard deviation, minimum

and maximum value.

Page 7: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Q9. The following SAS program is submitted:

data work.totalsales (keep = monthsales{12} );

set work.monthlysales (keep = year product sales);

array monthsales {12} ;

do i=1 to 12;

monthsales{i} = sales;

end;

run;

The data set named WORK.MONTHLYSALES has one observation per month for each

of five years for a total of 60 observations.

Which one of the following is the result of the above program?

A. The program fails execution due to data errors.

B. The program fails execution due to syntax errors.

C. The program executes with warnings and creates the WORK.TOTALSALES data

set.

D. The program executes without errors or warnings and creates the

WORK.TOTALSALES data set.

Answer : B. The syntax issue lies in this line of code - keep = msales{12}

To correct the syntax issue, replace keep = msales{12} with keep = msales1-msales12

See the errors in log window :

153 data work.totalsales(keep = msales{12} ) ;

Page 8: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

ERROR 214-322: Variable name { is not valid.

ERROR 23-7: Invalid value for the KEEP option.

Q10. The following SAS program is submitted:

data work.accounting;

set work.dept1 work.dept2;

run;

A character variable named JOBCODE exists 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.

Which one of the following is the length of the variable JOBCODE in the output data

set?

A. 5

B. 7

C. 8

D. 12

Answer : Since SAS checks the variable Job_code in DEPT1 for the first time of length

of 5 Bytes. it sets the length to be 5. All the values that are read from DEPT2 are

truncated to Chars.

Q11. Which one of the following SAS statements renames two variables?

Page 9: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

A. set work.dept1 work.dept2(rename = (jcode = jobcode) (sal = salary));

B. set work.dept1 work.dept2(rename = (jcode = jobcode sal = salary));

C. set work.dept1 work.dept2(rename = jcode = jobcode sal = salary);

D. set work.dept1 work.dept2(rename = (jcode jobcode) (sal salary));

Answer: B. The syntax for RENAME is as follows :

RENAME=(old-name-1=new-name-1 old-name-2=new-name-2. . . old-name-n=new-

name-n)

Q12. A raw data record is shown below:

07Jan2002

Which one of the following informats would read this value and store it as a SAS date

value?

A. date9.

B. ddmonyy9.

C. ddMMMyy9.

D. ddmmmyyyy9.

Answer : A

Q13. What does data _null_ mean?

data _null_ ;

Page 10: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

This statement produces:

A. no SAS dataset

B. a SAS dataset named null

C. a SAS dataset named _null_

D. the largest possible dataset

Answer : A. The data _null_ does not produce a dataset.

It is used mainly for the following purposes :

1. To create macro variables with call symput

2. To create customized reports with PUT statements writing to external files.

Q14. The following SAS program is submitted: data _null_; set old (keep = prod sales1 sales2); file 'file-specification'; put sales1 sales2; run; Which one of the following default delimiters separates the fields in the raw data file created? A. : (colon) B. (space) C. , (comma) D. ; (semicolon)

Answer : B. Since no delimiter is specified at the end of the "file", the default delimiter

space will be used.

Page 11: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Q15. Which one of the following statements is true regarding the name of a SAS array?

A. It is saved with the data set.

B. It can be used in procedures.

C. It exists only for the duration of the DATA step.

D. It can be the same as the name of a variable in the data set.

Answer : C.

Q16. The SASDATA.BANKS data set has five observations when the following SAS program is submitted: libname sasdata 'SAS-data-library'; data allobs; set sasdata.banks; capital=0; do year = 2000 to 2020 by 5; capital + ((capital+2000) * rate); output; end; run; How many observations will the ALLOBS data set contain? A. 5 B. 15 C. 20 D. 25

Page 12: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Answer : D. Banks has 5 observations and then the do loop outputs for (20/5 + 1) times.

Therefore 5*(20/5 + 1) = 25 is the observation count .

Q17. The following SAS SORT procedure step generates an output data set:

proc sort data = sasuser.houses out = report;

by style;

run;

In which library is the output data set stored?

A.WORK

B.REPORT.

C.HOUSES

D.SASUSER

Answer : A. If library name is not specified then the data will be stored in temporary dataset i.e.

WORK.

Q18. The SAS data set named WORK.TEST is listed below:

Page 13: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Which one of the following SAS programs created this data set?

A.

data work.test;

capacity = 150;

if 100 le capacity le 200 then

airplanetype = 'Large' and staff = 10;

else airplanetype = 'Small' and staff = 5;

run;

B.

data work.test;

capacity = 150;

if 100 le capacity le 200 then

do;

airplanetype = 'Large';

staff = 10;

end;

else

do;

airplanetype = 'Small';

staff = 5;

end;

run;

C.

data work.test;

capacity = 150;

Page 14: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

if 100 le capacity le 200 then

do;

airplanetype = 'Large';

staff = 10;

else

do;

airplanetype = 'Small';

staff = 5;

end;

run;

D.

data work.test;

capacity = 150;

if 100 le capacity le 200 then;

airplanetype = 'Small';

staff = 5;

else;

airplanetype = 'Large';

staff = 10;

run;

Answer : B. The problem with the options A,C and D is highlighted below in bold.

A. data work.test;

capacity = 150;

if 100 le capacity le 200 then

airplanetype = 'Large' and staff = 10;

else airplanetype = 'Small' and staff = 5;

Page 15: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

run;

Log : NOTE: Variable staff is uninitialized.

C. data work.test;

capacity = 150;

if 100 le capacity le 200 then

do;

airplanetype = 'Large';

staff = 10;

else /*end missing for if do loop*/

do;

airplanetype = 'Small';

staff = 5;

end;

run;

Log : ERROR 117-185: There was 1 unclosed DO block.

NOTE: The SAS System stopped processing this step because of errors.

D. data work.test;

capacity = 150;

Page 16: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

if 100 le capacity le 200 then;

airplanetype = 'Small';

staff = 5;

else; /* there is no if associated with this else */

airplanetype = 'Large';

staff = 10;

run;

Log : ERROR 160-185: No matching IF-THEN clause

Q19. The following SAS program is submitted:

data work.flights;

destination = 'CPH';

select(destination);

when('LHR') city = 'London';

when('CPH') city = 'Copenhagen';

otherwise;

end;

run;

Which one of the following is the value of the CITY variable?

A. London

B. Copenh

Page 17: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

C. Copenhagen

D. ' ' (missing character value)

Answer : B.

Notice that the LENGTH statement in the SELECT group has not been specified.

Remember that without the LENGTH statement, values for Group might be truncated,

as the first value for Group (London) is not the longest possible value.

city = 'London' - It contains 6 characters.

'Copenhagen' will be truncated to 6 characters i..e Copenh.

Q20. A raw data file is listed below:

--------10-------20-------30

John McCloskey 35 71

June Rosesette 10 43

Tineke Jones 9 37

The following SAS program is submitted using the raw data file as input:

data work.homework;

infile 'file-specification';

input name $ age height;

if age LE 10;

run;

How many observations will the WORK.HOMEWORK data set contain?

A. 0

Page 18: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

B. 2

C. 3

D. No data set is created as the program fails to execute due to errors.

Answer : C. The data set homework will have missing values under the age variable.

The name has a blank in it so we need to use the & list modifier to read the data, also

when using this we have to make sure that the data are at least two spaces apart.

As SAS considers missing values smaller than 10 in age variable so it has included all

the three observation in the data set.

The corrected code is as follows:

Data

homewo;

input fname$ lname $ age

height;

if age LE

10;

datalines;

John McCloskey 35

71

June Rosesette 10

43

Tineke Jones 9 37

;

run

Page 19: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Q21. The following SAS program is submitted:

data work.one;

x = 3;

y = 2;

z = x ** y;

run;

Which one of the following is the value of the variable Z in the output data set?

A. 6

B. 9

C. . (missing numeric value)

D. The program fails to execute due to errors.

Answer: B.

** = exponentiation

X**Y raise X to the power of Y

So 3 to the power of 2 = 9

Q22. The following SAS program is submitted:

data work.new;

length word $7;

amount = 7;

if amount = 5 then word = 'CAT';

Page 20: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

else if amount = 7 then word = 'DOG';

else word = 'NONE!!!';

amount = 5;

run;

Which one of the following represents the values of the AMOUNT and WORD

variables?

A. amount word

5 DOG

B. amount word

5 CAT

C. amount word

7 DOG

D. amount word

7 ' ' (missing character value)

Answer : A. When SAS reads in the iterations in sequence, it first writes 7 to the variable

'amount' in PDV. Then it reads through the condition and writes 'DOG' for variable 'word'

in PDV. Then it again encounters the value 5 and writes to 'Amount' in PDV.

Q23. The following SAS program is submitted:

data _null_;

Page 21: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

set old;

put sales1 sales2;

run;

Where is the output written?

A. the SAS log

B. the raw data file that was opened last

C. the SAS output window or an output file

D. the data set mentioned in the DATA statement

Answer : A.

Q24. The following SAS program is submitted: data work.report; set work.sales_info; if qtr(sales_date) ge 3; run; The SAS data set WORK.SALES_INFO has one observation for each month in the year 2000 and the variable SALES_DATE which contains a SAS date value for each of the twelve months. How many of the original twelve observations in WORK.SALES_INFO are written to the WORK.REPORT data set?

Answer : C. The qtr (quarter) values of each of the months (July through December)

7,8,9,10,11,12 is 3,3,3,4,4,4..Therefore 6 obs are included in the final dataset.

Page 22: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Q25. The following SAS DATA step is submitted:

data sasdata.atlanta sasdata.boston work.portland work.phoenix;

set company.prdsales;

if region = 'NE' then output boston;

if region = 'SE' then output atlanta;

if region = 'SW' then output phoenix;

if region = 'NW' then output portland;

run;

Which one of the following is true regarding the output data sets?

A. No library references are required.

B. The data sets listed on all the IF statements require a library reference.

C. The data sets listed in the last two IF statements require a library reference.

D. The data sets listed in the first two IF statements require a library reference.

Answer : D. The datasets in the first two IF statements require "sasdata" libref.

Q26. 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;

Page 23: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Which one of the following statements explains why the program failed execution? A. The SORT procedures contain invalid syntax. B. The merged data sets are not permanent SAS data sets. C. The data sets were not merged in the order by which they were sorted. D. The RUN statements were omitted after each of the SORT procedures.

Answer : C. The two proc sorts are arranged in descending order. However, the merge

is in ascending order. Hence, the two data sets won't be merged.

In merge if you choose to sort by descending then you must use descending with merge

statement otherwise it will not merge because of reason ( C ). It does not matter if you

sort by ascending order.

Q27. Which one of the following is true of the SUM statement in a SAS DATA step program?

A. It is only valid in conjunction with a SUM function.

B. It is not valid with the SET, MERGE and UPDATE statements.

C. It adds the value of an expression to an accumulator variable and ignores missing values.

D. It does not retain the accumulator variable value from one iteration of the SAS DATA step to

the next.

Answer : C.

Page 24: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Q28. The SAS data sets WORK.EMPLOYEE and WORK.SALARY are listed below:

WORK.EMPLOYEE

fname age

Bruce 30

Dan 40

Dan 25000

WORK.SALARY

fname salary

Bruce 25000

Bruce 35000

The following SAS program is submitted:

data work.empdata;

merge work.employee work.salary;

by fname;

totsal + salary;

run;

How many variables are output to the WORK.EMPDATA data set?

A. 3

B. 4

C. 5

D. No variables are output to the data set as the program fails to execute due to errors.

Page 25: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Answer : B. The variables are: Fname, age, salary and totsal.

Note: Obs will not be counted here.

Q29. The following SAS program is submitted:

data work.sets;

do until (prod gt 6);

prod + 1;

end;

run;

Which one of the following is the value of the variable PROD in the output data set?

A. 5

B. 6

C. 7

D. 8

Answer : C. Because of prod + 1 statement, SAS compiler will assume a retain prod 0;

statement.

First loop => prod = 1 => (1 gt 6) => false, loop continues

Second loop => prod = 2 => (2 gt 6) => false, loop continues

.....

last loop => prod = 7 => (7 gt 6) => true, do until loop exits and pdv writes prod value of

7 to output dataset.

Page 26: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Q30. Which of the following is not an error identified during the compilation phase?

A) Quotation marks are unbalances

B) No RUN statement in the step

C) An option is invalid

D) Semicolons are missing in statements

Answer : B.

Q31. The following SAS program is submitted:

libname rawdata1 'location of SAS data library';

filename rawdata2 'location of raw data file';

data work.testdata;

infile

input sales1 sales2;

run;

Which one of the following is needed to complete the program correctly?

A. rawdata1

B. rawdata2

C. 'rawdata1'

D. 'rawdata2'

Answer: B. Since we have already initialized the path with a filename, we do not have

to include quotation again.

Page 27: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Q32. The following SAS program is submitted and reads 100 records from a raw data

file:

data work.total;

infile 'file-specification' end = eof;

input name $ salary;

totsal + salary;

run;

Which one of the following IF statements writes the last observation to the output data

set?

A. if end = 0;

B. if eof = 0;

C. if end = 1;

D. if eof = 1;

Answer : D. End is a sas keyword which will become true when SAS reads last record of

a dataset. This value you cannot use directly in your program, so we create a alias

name eof (end of file), but you can name it anything. EOF will carry the same value as

internal variable END. So as we know 1=true and 0= false. if EOF = 1; will output only

the last observation.

Q33. In the following SAS program, the input data files are sorted by the NAMES

variable:

libname temp 'SAS-data-library';

Page 28: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

data temp.sales;

merge temp.sales work.receipt;

by names;

run;

Which one of the following results occurs when this program is submitted?

A. The program executes successfully and a temporary SAS data set is created.

B. The program executes successfully and a permanent SAS data set is created.

C. The program fails execution because the same SAS data set is referenced for both

read and write operations.

D. The program fails execution because the SAS data sets on the MERGE statement

are in two different libraries.

Answer : B. temp is declared as a permanent library so permanent dataset will be

created.

Q34. The contents of two SAS data sets named EMPLOYEE and SALARY are listed below:

data emplsal; merge employee (in=ine) salary(in=ins); by name; if ine and ins; run;

Page 29: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

How many observation are in EMPLSAL dataset?

A. 4

B. 3

c. 2

D. 1

Answer : A.

Run the following SAS code and see what you got in the EMPSAL dataset:

data salary;

input name $ salary;

datalines;

Bruce 40000

Bruce 35000

Dan 37000

Dan .

;

run;

data employee;

input name $ age;

datalines;

Bruce 30

Dan 35

;

run; data emplsal;

Page 30: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

merge employee (in=ine) salary(in=ins); by name; if ine and ins; run;

Q35. The following SAS program is submitted:

data work.products;

Product_Number = 5461;

Item = '1001';

Item_Reference = Item'/'Product_Number;

run;

Which one of the following is the value of the variable ITEM_REFERENCE in the output

data set?

A. 1001/5461

B. 1001/ 5461

C. . (missing numeric value)

D. The value can not be determined as the program fails to execute due to errors.

Answer : D. Since there is no concatenate symbol between Item and Product_Number.

Q36. The following SAS program is submitted: libname sasdata 'SAS-data-library'; data test; set sasdata.chemists (keep = job_code); if job_code = 'chem3' then description = 'Senior Chemist';

Page 31: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

run; The variable JOB_CODE is a character variable with a length of 6 bytes. Which one of the following is the length of the variable DESCRIPTION in the output data set? A. 6 bytes B. 8 bytes C. 14 bytes D. 200 bytes

Answer : C. The length of 'Senior Chemist' is 14.

Q37. Which one of the following is true of the RETAIN statement in a SAS DATA step

program?

A. It can be used to assign an initial value to _N_ .

B. It is only valid in conjunction with a SUM function.

C. It has no effect on variables read with the SET, MERGE and UPDATE statements.

D. It adds the value of an expression to an accumulator variable and ignores missing values.

Answer : C.

The RETAIN statement

- is a compile-time only statement that creates variables if they do not already exist

- initializes the retained variable to missing before the first execution of the DATA step if you do

not supply an initial value

- has no effect on variables that are read with SET, MERGE, or UPDATE statements.

Page 32: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

Q38. The following SAS program is submitted:

data work.test;

Title = 'A Tale of Two Cities, Charles J. Dickens';

Word = scan(title,3,',');

run;

Which one of the following is the value of the variable WORD in the output data set?

A. T

B. of

C. Dickens

D. ' ' (missing character value)

Answer : D.

Q39. Which one of the following is true when SAS encounters a data error in a DATA

step?

A. The DATA step stops executing at the point of the error, and no SAS data set is

created.

B. A note is written to the SAS log explaining the error, and the DATA step continues to

execute.

C. A note appears in the SAS log that the incorrect data record was saved to a separate

Page 33: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

SAS file for further examination.

D. The DATA step stops executing at the point of the error, and the resulting DATA set

contains observations up to that point.

Answer : B. If it's a syntax error then the A occurs.

If it's an error with invalid data then B will occur .

If it's a problem with merging two or more datasets, then D will occur.

Q40. The SAS data set EMPLOYEE_INFO is listed below:

IDNumber Expenses

2542 100.00

3612 133.15

2198 234.34

2198 111.12

The following SAS program is submitted:

proc sort data = employee_info;

run;

Which one of the following BY statements completes the program and sorts the data

sequentially by ascending expense values within each ascending IDNUMBER value?

A. by Expenses IDNumber;

B. by IDNumber Expenses;

Page 34: BASE SAS - Weeblysitworldsolutions.weebly.com/uploads/4/5/7/6/45761571/final_base... · BASE SAS data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000;

Name: Batch timing: Date:

BASE SAS

C. by ascending (IDNumber Expenses);

D. by ascending IDNumber ascending Expenses;

Answer : B. By default SAS will sort data in ascending order. IDNumber should be

specified before Expenses as we want IDNUMBER to be sorted in ascending.