SAS Base认证考试 真题+答案详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SAS Base认证考试—70题
SAS分多个认证种类:base,advanced,clinic等,但大多需要先通过base认证。

但凡这类商业组织提供的考证,基本都是题库型,所以想考过难度并不大。

对于只想拿SAS认证的人,如果熟练掌握网上流传甚广的sas真题70题,通过base认证基本就没问题。

Q 1
1. The following SAS program is submitted:
data WORK.TOTAL;
set WORK.SALARY;
by Department Gender;
if First.<_insert_code_> then Payroll=0;
Payroll+Wagerate;
if Last.<_insert_code_>;
run;
The SAS data set WORK.SALARY is currently ordered by Gender within Department.
Which inserted code will accumulate subtotals for each Gender within Department?
A. Gender
B. Department
C. Gender Department
D. Department Gender
答案:A
本题知识点:自动变量
在SAS读取数据时,在PDV过程中会产生很多自动变量,在输出的数据集中是不可见的。

· FIRST.VARIABLE:同一个BY变量(组),若新的变量值第一次出现时,其first.variable值为1。

· LAST.VARIABLE:同一个BY变量(组),若新的变量值最后一次出现时,其last.variable值为1。

另外,在BY变量右面有多个变量时,先按第一个变量排序,若第一个变量的观测存在重复时,才按第二个变量排序。

Q 2
Given the following raw data records in TEXTFILE.TXT:
----|----10---|----20---|----30
John,FEB,13,25,14,27,Final
John,MAR,26,17,29,11,23,Current
Tina,FEB,15,18,12,13,Final
Tina,MAR,29,14,19,27,20,Current
The following output is desired:
Obs Name Month Status Week1 Week2 Week3 Week4 Week5
1 John FEB Final $13 $25 $14 $27 .
2 John MAR Current $26 $17 $29 $11 $23
3 Tina FEB Final $15 $18 $12 $13 .
4 Tina MAR Current $29 $14 $19 $27 $20
Which SAS program correctly produces the desired output?
A. data WORK.NUMBERS;
length Name $ 4 Month $ 3 Status $ 7;
infile 'TEXTFILE.TXT' dsd;
input Name $ Month $;
if Month='FEB' then input Week1 Week2 Week3 Week4 Status $;
else if Month='MAR' then input Week1 Week2 Week3 Week4 Week5 Status $; format Week1-Week5 dollar6.;
run;
proc print data=WORK.NUMBERS;
run;
B. data WORK.NUMBERS;
length Name $ 4 Month $ 3 Status $ 7;
infile 'TEXTFILE.TXT' dlm=',' missover;
input Name $ Month $;
if Month='FEB' then input Week1 Week2 Week3 Week4 Status $;
else if Month='MAR' then input Week1 Week2 Week3 Week4 Week5 Status $; format Week1-Week5 dollar6.;
run;
proc print data=WORK.NUMBERS;
run;
C. data WORK.NUMBERS;
length Name $ 4 Month $ 3 Status $ 7;
infile 'TEXTFILE.TXT' dlm=',';
input Name $ Month $ @;
if Month='FEB' then input Week1 Week2 Week3 Week4 Status $;
else if Month='MAR' then input Week1 Week2 Week3 Week4 Week5 Status $; format Week1-Week5 dollar6.;
run;
proc print data=WORK.NUMBERS;
run;
D. data WORK.NUMBERS;
length Name $ 4 Month $ 3 Status $ 7;
infile 'TEXTFILE.TXT' dsd @;
input Name $ Month $;
if Month='FEB' then input Week1 Week2 Week3 Week4 Status $;
else if Month='MAR' then input Week1 Week2 Week3 Week4 Week5 Status $; format Week1-Week5 dollar6.;
run;
proc print data=WORK.NUMBERS;
run;
答案:C
本题知识点:INFILE语句与指示器@、@@
INFILE filespecification options;
其中,filespecification用来定义文件, options给出选择项;
· filespecification有以下三种形式:
①、fileref(文件标志)
②、’filename’(文件名)
③、CARDS指明输入的数据,紧跟着CARDS语句
·下列选择项(options)可以出现在INFILE语句中:
①、COLUMN=variable或COL=variable 定义一个变量, 其值是指针所在的当前列位置。

②、END=variable 定义一个变量, 作为文件结束的标志。

③、EOF=label是一个语句标号, 当INFILE语句读到文件末尾时, 作为隐含的GOTO语句的目标。

④、LENGHT=variable 定义一个变量, 其值是当前输入数据行的长度。

⑤、FIRSTOBS=linenumber 要求从指定的行开始读取数据, 而不是从文件的第一个记录开始。

⑥、OBS=n 指定从一个顺序输入文件中读取数据的最后一个行(即第1~第n行)。

一个观察可能占n行。

⑦、DLM= 若分隔符不是空格,则使用DLM=指定
⑧、DSD 忽略引号中数值的分隔符;自动将字符数据中的引号去掉;将两个相邻分隔符视为缺失值处理。

⑨、MISSOVER 阻止INPUT进入下一行读取,未赋值变量视为缺失值。

⑩、TRUNCOVER 与MISSOVER相似,但在COLUMN INPUT或FORMATTED INPUT中使用。

比较 @ 与 @@ 的区别:
· @ 用于1个数据行用多个input语句读取,停留到下一个INPUT语句。

· @@ 用于1个数据行含有多个观测值读取时,停留到下一个DATA步。

Q 3
The following SAS program is submitted:
data WORK.DATE_INFO;
Day="01" ;
Yr=1960 ;
X=mdy(Day,01,Yr) ;
run;
What is the value of the variable X?
A. the numeric value 0
B. the character value "01011960"
C. a missing value due to syntax errors
D. the step will not compile because of the character argument in the mdy function.
答案:A
本题知识点:数据类型的自动转换
在SAS中,日期时间是以1960年1月1日0时0分0秒作为起点的。

因此,mdy(1,1,1960)=0。

若把日期时间表示为常数时,要使用相应的格式,带单或双引号,在后面紧跟一个D(日期)、T(时间)、DT(日期时间)。

在本题中,日期函数的参数应该是数值,若是字符串,会先尝试字符串是否可以转换为数值,这是自动转换。

自动转换是指系统产生一个临时的变量来完成赋值或运算。

当自动转换发生时,会在LOG窗口中给出提示。

1)、字符型变量 -> 数值型变量
在下面的情况中,VarB是一个字符型变量,其它是数字型变量。

·赋值于一个数字型变量,如:VarA=VarB;
·在算术运算中使用,如:VarA=VarB+0;
·与一个数字型变量进行比较,如:if VarB>=VarA;
·在函数中,参数要求数字型变量,如:VarA=sum(VarB,0);
2)、数值型变量 -> 字符型变量
在下面的情况中,VarB是一个数字型变量,其它是字符型变量。

·赋值于一个字符型变量,如:VarA=VarB;
·在与要求字符的运算符一起使用,如:VarA=''||VarB;
·在函数中,参数要求字符型变量,如:VarA=trim(VarB);
Q 4
The Excel workbook REGIONS.XLS contains the following four worksheets:
EAST
WEST
NORTH
SOUTH
The following program is submitted:
libname MYXLS 'regions.xls';
Which PROC PRINT step correctly displays the NORTH worksheet?
A. proc print data=MYXLS.NORTH;run;
B. proc print data=MYXLS.NORTH$;run;
C. proc print data=MYXLS.'NORTH'e;run;
D. proc print data=MYXLS.'NORTH$'n;run;
答案:D
本题知识点:打印Excel的某个工作表的数据
WHAT IS THAT “$” CHARACTER?
Looking at SAS Explorer it may be surprising that each dataset written to Excel appears twice, once with the expected name an d once with a trailing “$”.
Unlike a typical data source, data in an Excel spreadsheet need not be left and top aligned. For this Excel has named ranges which allow data to be placed anywhere inside a spreadsheet. By default SAS reads and writes data from named ranges on spreadsheets, but will also read spreadsheet data directly in the absence of a named range. When a new SAS dataset is created in an Excel library, SAS creates both a spreadsheet and a named range. Each is given the same name, wi th thespreadsheet denoted by a trailing “$”.
In the example at right CLASS is the named range created by the Excel engine and CLASS$ is the spreadsheet created by the Excel engine to hold the named range. Within SAS, the named range is referred to as Wrkbk.CLASS, and the spreadsheet is referenced using the name literal Wrkbk.’CLASS$’n.
SAS name literals are name tokens written as strings within quotation marks, followed by the letter n. Name literals allow the use of special characters that are not otherwise allowed in SAS names , like the “$” used by the Excel libname engine to distinguish worksheets from named ranges. For more information see the Recommended Readings.
摘自《De-Mystifying the SAS LIBNAME Engine in Microsoft Excel: A Practical Guide》
Q 5
Which statement specifies that records 1 through 10 are to be read from the raw data file customer.txt?
A. infile 'customer.txt' 1-10;
B. input 'customer.txt' stop@10;
C. infile 'customer.txt' obs=10;
D. input 'customer.txt' stop=10;
答案:C
本题知识点:INFILE的选项
FIRSTOBS=常数,要求从指定的行开始读取数据, 而不是从文件的第一个记录开始。

OBS=常数,指定从一个顺序输入文件中读取数据的最后一个行(即第1~第n行)。

一个观测可能占n行。

Q 6
After a SAS program is submitted, the following is written to the SAS log:
101 data WORK.JANUARY;
102 set WORK.ALLYEAR(keep=product month num_Sold Cost);
103 if Month='Jan' then output WORK.JANUARY;
104 Sales=Cost * Num_Sold;
105 keep=Product Sales;
-----
22
ERROR 22-322: Syntax error, expecting one of the following: !,
!!, &, *, **, +, -,
, <=, <>, =, >, >=,
AND, EQ, GE, GT, IN, LE, LT, MAX, MIN, NE, NG, NL,
NOTIN, OR, ^=, |, ||, ~=.
106 run;
What changes should be made to the KEEP statement to correct the errors in the LOG?
A. keep=(Product Sales);
B. keep Product, Sales;
C. keep=Product, Sales;
D. keep Product Sales;
答案:D
本题知识点:KEEP语句与KEEP=选项
在处理大型数据集时,KEEP=选项的效率较高。

· KEEP语句:KEEP variable(s); 不能用于过程步。

· KEEP=选项:data-set-name( KEEP=variable(s) ) 可以用于数据步(如,DATA语句、SET语句)、过程步。

其中,variable(s)是具体变量,不能是数组、_N_、_ERROR_等。

Q 7
Which of the following choices is an unacceptable ODSdestination for producing output that can be viewed in Microsoft Excel?
A. MSOFFICE2K
B. EXCELXP
C. CSVALL
D. WINXP
答案:D
本题知识点:ODS输出
Most of these destinations are designed to create output for viewing on a screen or for printing.
The OUTPUT destination creates SAS data sets. The MARKUP destination is a general purpose
tool for creating output in formats defined by tagsets. This includes XML (eXtensible Markup
Language), EXCELXP, LaTeX, CSV (comma-separated values), and many other formats where data
can be thought of as separated by tags. The DO CUMENT destination, on the other hand, allows
you to create a reusable output “document” that yo u can rerender for any destination. So, if your
boss decides he really wants that report in PDF, not RTF, you can replay the output document
without having to rerun the entire SAS program that created the data. With an output document,
you can also rearrange, duplicate, or delete tables to further customize your output.
摘自《The Little SAS Book》(Fourth) P152页
Q 8
The SAS data set named WORK.SALARY contains 10 observations for each department, and is currently ordered by Department.
The following SAS program is submitted:
data WORK.TOTAL;
set WORK.SALARY(keep=Department MonthlyWageRate);
by Department;
if First.Department=1 then Payroll=0;
Payroll+(MonthlyWageRate*12);
if Last.Department=1;
run;
Which statement is true?
A. The by statement in the DATA step causes a syntax error.
B. The statement Payroll+(MonthlyWageRate*12); in the data step causes a syntax error.
C. The values of the variable Payroll represent the monthly total for each department in the WORK.SALARY data set.
D. The values of the variable Payroll represent a monthly total for all values of WAGERATE in the WORK.SALARY data set.
答案:C
本题知识点:类似第1题
Q 9
data course;
input exam;
datalines;
50.1
;
run;
proc format;
value score 1 –50 = ‘Fail’
51 –100 = ‘Pass’;
run;
proc report data =course nowd;
column exam;
define exam / display format=score.;
run;
What is the value for exam?
A. Fail
B. Pass
C. 50.1
D. No output
答案:C
本题知识点:PROC FORMAT语句
PROC FORMAT;
VALUE name
range-1=’formatted-text-1′;
range-2=’formatted-text-2′;
……
range-n=’formatted-text-n’;
若name为字符串设计格式,则必须在开头加$,长度不超过32字节;
name不能以数字结尾,除了下划线外,不能含其他的任何特殊字符。

在range右侧文本可达到32767字节。

·变量值是字符串要加引号。

· range是多个值,要用逗号。

·连续的要用-。

·关键字low、high指代变量中最小和最大的非缺失值。

·用 < 排除或指代某些范围。

· other是给其他没列在VALUE中的变量分配格式。

Q 10
The following SAS program is submitted:
data WORK.RETAIL;
Cost='$20.000';
Discount=.10*Cost;
run;
What is the result?
A. The value of the variable Discount in the output data set is 2000. No messages are written to the SAS log.
B. The value of the variable Discount in the output data set is 2000. A note that conversion has taken place is written to the SAS log.
C. The value of the variable Discount in the output data set is missing. A note in the SAS log refers to invalid numeric data.
D. The variable Discount in the output data set is set to zero. No messages are written to the SAS log.
答案:C
本题知识点:标准数据、以及数据类型的自动转换
非标准数据
·含逗号的数值,如:1,00,001;
·包含美元符号、十六进制、压缩十进制的数据;
·日期是最普通的非标准数据。

标准数据
·数字0-9
·英文句号
·科学计数、E
· +、-
如果字符型变量转换后不能作为标准数值读入,被转换成的字符型变量有格式要求,必须进行显式转换。

Q 11
Given the existing SAS program:
proc format;
value agegrp
low-12 ='Pre-Teen'
13-high = 'Teen';
run;
proc means data=SASHELP.CLASS;
var Height;
class Sex Age;
format Age agegrp.;
run;
Which statement in the proc means step needs to be modified or added
to generate the following results:
Analysis Variable : Height
N
Sex Age Obs Minimum Maximum Mean
------------------------------------------------------------------
F Pre-Teen 3 51.3 59.8 55.8
Teen 6 56.5 66.5 63.0
M Pre-Teen 4 57.3 64.8 59.7
Teen 6 62.5 72.0 66.8
--------------------------------------------------------------------
A. var Height / nobs min max mean maxdec=1;
B. proc means data=SASHELP.CLASS maxdec=1 ;
C. proc means data=SASHELP.CLASS min max mean maxdec=1;
D. output nobs min max mean maxdec=1;
答案:C
本题知识点:PROC MEANS过程
PROC MEANS <options> <statistic-keywords>;
语句;
RUN;
∙<options>
data=:数据集
maxdec=:指定输出结果的小数位数,默认为7位
noprint:禁止结果在OTPUT窗口输出
alpha:设定可信区间的α水平,默认为0.05
∙<statistic-keywords>
MAX、MIN、MEAN、MEDIAN、N、NMISS、RANGE、STDDEV、SUM
若不加统计关键词,默认打印的顺序:
非缺失值个数(N)、均值(MEAN)、标准差(STDDEV)、最小值(MIN)、最大值(MAX)。

∙语句
若在PROC MEAN过程中没有其他语句,默认输出所有观测值和所有数值变量的统计量。

BY:分变量单独分析,数据必须先按变量顺序排序,即PROC SORT
CLASS:分变量单独分析,不用排序
VAR:指定使用的数值变量
Q 12
The Excel workbook QTR1.XLS contains the
following three worksheets:
JAN
FEB
MAR
Which statement correctly assigns a library reference to the Excel workbook?
A. libname qtrdata 'qtr1.xls';
B. libname 'qtr1.xls' sheets=3;
C. libname jan feb mar 'qtr1.xls';
D. libname mydata 'qtr1.xls' WORK.heets=(jan,feb,mar);
答案:A
本题知识点:LIBNAME语句格式
LIBNAME libref <engine>‘SAS-data-library’< options > <engine/host-options>;
Q 13
The following SAS program is submitted:
data WORK.TEST;
set WORK.MEASLES(keep=Janpt Febpt Marpt);
array Diff{3} Difcount1-Difcount3;
array Patients{3} Janpt Febpt Marpt;
run;
What new variables are created?
A. Difcount1, Difcount2 and Difcount3
B. Diff1, Diff2 and Diff3
C. Janpt, Febpt, and Marpt
D. Patients1, Patients2 and Patients3
答案:A
本题知识点:数组
与其他编程语言的数组相比不同在于,SAS数组的每个元素都对应一个变量名。

∙数值型数组
数组说明中的初始值可省略,默认为缺失值。

数组说明中变量可省略,变量名默认为数组名+序号。

序号从1开始。

ARRAY test(3) Math Chinese English (0,0,0);
数组元素的个数由变量个数决定。

ARRAY test(*) test3-test8;
二维数组,数组元素按行排列。

ARRAR x(2,2) x11 x12 x21 x22;
∙字符型数组
字符型数组药指定数组元素的最大长度,其他与数值型数组相同。

ARRAY test(2) $ 10 mathor father;
临时数组
若SAS数组每个元素不对应变量名,即为临时数组。

这与其他编程语言相同。

ARRAY test(3) _TEMPORARY_ (0,0,0);
临时数组只用于中间计算,不保存入数据集。

在数据步中,临时数组在数据步隐含循环中能自动保留上一步得到的值。

Q 14
Which of the following programs correctly invokes the DATA Step Debugger:
A. data WORK.TEST debug;
set WORK.PILOTS;
State=scan(cityState,2,' ');
if State='NE' then description='Central';
run;
B. data WORK.TEST debugger;
set WORK.PILOTS;
State=scan(cityState,2,' ');
if State='NE' then description='Central';
run;
C. data WORK.TEST / debug;
set WORK.PILOTS;
State=scan(cityState,2,' ');
if State='NE' then description='Central';
run;
D. data WORK.TEST / debugger;
set WORK.PILOTS;
State=scan(cityState,2,' ');
if State='NE' then description='Central';
run;
答案:C
本题知识点: / debug 语法
DEBUG过程的调用方法:在DATA步后面增加DEBUG选项。

Q 15
Which statement is true concerning the SAS automatic variable _ERROR_?
A. It cannot be used in an if/then condition.
B. It cannot be used in an assignment statement.
C. It can be put into a keep statement or keep= option.
D. It is automatically dropped.
答案:D
本题知识点:自动变量_ERROR_
在PDV过程中,产生很多自动变量,可以在数据步的表达式中使用,在输出数据集中不可见。

在PDV过程中,_N_、_ERROR_默认为DROP。

在KEEP语句或KEEP=选项中,可以使用除了_N_、_ERROR_之外的变量。

Q 16
The following SAS program is submitted:
data WORK.DATE_INFO;
X='04jul2005'd;
DayOfMonth=day(x);
MonthOfYear=month(x);
Year=year(x);
run;
What types of variables are DayOfMonth, MonthOfYear, and Year?
A. DayOfMonth, Year, and MonthOfYear are character.
B. DayOfMonth, Year, and MonthOfYear are numeric.
C. DayOfMonth and Year are numeric. MonthOfYear is character.
D. DayOfMonth, Year, and MonthOfYear are date values.
答案:B
本题知识点:SAS中日期时间及函数
起点:1960年1月1日0时0分0秒。

若将日期时间标示为数值型常数,需使用相应格式。

格式值带单引号,后跟一个D(日期)、T(时间)、DT(日期时间)。

日期函数返回值为数值。

Q 17
Given the following data step:
data WORK.GEO;
infile datalines;
input City $20.;
if City='Tulsa' then
State='OK';
Region='Central';
if City='Los Angeles' then
State='CA';
Region='Western';
datalines;
Tulsa
Los Angeles
Bangor
;
run;
After data step execution, what will data set WORK.GEO contain?
A. City State Region
----------- ----- -------
Tulsa OK Western
Los Angeles CA Western
Bangor Western
B. City State Region
----------- ----- -------
Tulsa OK Western
Los Angeles CA Western
Bangor
C. City State Region
----------- ----- -------
Tulsa OK Central
Los Angeles CA Western
Bangor Western
D. City State Region
----------- ----- -------
Tulsa OK Central
Los CA Western
Bangor
答案:A
本题知识点:IF语句
若执行语句不能在一个语句完成,则使用复合语句DO和END
IF 条件 THEN 语句;
没有ENDIF,没有IF-ELSEIF-ELSE多分支结构,语句1只能是一个语句。

IF 条件 THEN 语句1;
<ELSE 语句2>;
Q 18
Which statement describes a characteristic of the SAS automatic variable _ERROR_?
A. The _ERROR_ variable maintains a count of the number of data errors in a DATA step.
B. The _ERROR_ variable is added to the program data vector and becomes part of the data set being created.
C. The _ERROR_ variable can be used in expressions in the DATA step.
D. The _ERROR_ variable contains the number of the observation that caused the data error.
答案:C
本题知识点:WHERE语句
类似第15题。

Q 19
The SAS data set WORK.ONE contains a numeric variable named Num and a character variable named Char: WORK.ONE
Num Char
--- ----
1 23
3 23
1 77
The following SAS program is submitted:
proc print data=WORK.ONE;
where Num='1';
run;
What is output?
A. Num Char
--- ----
1 23
B. Num Char
--- ----
1 23
1 77
C. Num Char
--- ----
1 23
3 23
1 77
D. No output is generated.
答案:D
本题知识点:WHERE语句
WHERE语句无法找到满足条件的观测。

Q 20
The data set WORK.REALESTATE has the variable LocalFee with a format of 9. and a variable CountryFee with a format of 7.;
The following SAS program is submitted:
data WORK.FEE_STRUCTURE;
format LocalFee CountryFee percent7.2;
set WORK.REALESTAT;
LocalFee=LocalFee/100;
CountryFee=CountryFee/100;
run;
What are the formats of the variables LOCALFEE and COUNTRYFEE in the output dataset?
A. LocalFee has format of 9. and CountryFee has a format of 7.
B. LocalFee has format of 9. and CountryFee has a format of percent7.2
C. Both LocalFee and CountryFee have a format of percent7.2
D. The data step fails execution; there is no format for LocalFee.
答案:C
本题知识点:FORMAT语句
FORMAT语句为非执行语句。

FORMAT语句在SET语句前后均无差别。

FORMAT可以使用在数据步和过程步中,前者把格式永久存储,后者只是临时存储(当前过程中有作用)。

Q 21
Given the SAS data set WORK.PRODUCTS:
ProdId Price ProductType Sales Returns
------ ----- ----------- ----- -------
K12S 95.50 OUTDOOR 15 2
B132S 2.99 CLOTHING 300 10
R18KY2 51.99 EQUIPMENT 25 5
3KL8BY 6.39 OUTDOOR 125 15
DY65DW 5.60 OUTDOOR 45 5
DGTY23 34.55 EQUIPMENT 67 2
The following SAS program is submitted:
data WORK.OUTDOOR WORK.CLOTH WORK.EQUIP;
set WORK.PRODUCTS;
if Sales GT 30;
if ProductType EQ 'OUTDOOR' then output WORK.OUTDOOR;
else if ProductType EQ 'CLOTHING' then output WORK.CLOTH;
else if ProductType EQ 'EQUIPMENT' then output WORK.EQUIP;
run;
How many observations does the WORK.OUTDOOR data set contain?
A. 1
B. 2
C. 3
D. 6
答案:B
本题知识点:IF子集、OUPUT语句
子集IF语句对满足条件的观测输出到正在被创建的数据集中。

Q 22
Which step displays a listing of all the data sets in the WORK library?
A. proc contents lib=WORK run;
B. proc contents lib=WORK.all;run;
C. proc contents data=WORK._all_; run;
D. proc contents data=WORK _ALL_; run;
答案:C
本题知识点:PROC CONTENTS过程
默认自动打印最近创建的数据集的描述信息PROC CONTENTS;RUN;
打印当前目录下的全部数据集的描述信息
PROC CONTENTS DATA=_ALL_;RUN;
打印WORK临时逻辑库下数据集的描述信息PROC CONTENTS DATA=WORK._ALL_;RUN; Q 23
Which is a valid LIBNAME statement?
A. libname "_SAS_data_library_location_";
B. sasdata libname "_SAS_data_library_location_";
C. libname sasdata "_SAS_data_library_location_";
D. libname sasdata sas "_SAS_data_library_location_";答案:C
本题知识点:LIBNAME定义逻辑库
参考第12题。

Q 24
Given the following raw data records:
----|----10---|----20---|----30
Susan*12/29/1970*10
Michael**6
The following output is desired:
Obs employee bdate years
1 Susan 4015 10
2 Michael . 6
Which SAS program correctly reads in the raw data? A. data employees;
infile 'file specification' dlm='*';
input employee $ bdate : mmddyy10. years;
run;
B. data employees;
infile 'file specification' dsd='*';
input employee $ bdate mmddyy10. years;
run;
C. data employees;
infile 'file specification' dlm dsd;
input employee $ bdate mmddyy10. years;
run;
D. data employees;
infile 'file specification' dlm='*' dsd;
input employee $ bdate : mmddyy10. years; run;
答案:D
本题知识点:INFILE语句
参考第2题。

Q 25
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
答案:D
本题知识点:WHERE子集
计算15-5+1=11个。

WHERE子集的观测最多为11个。

Q 26
Which step sorts the observations of a permanent SAS data set by two variables and stores the sorted observations in a temporary SAS data set?
A. proc sort out=EMPLOYEES data=EMPSORT;
by Lname and Fname;
run;
B. proc sort data=SASUSER.EMPLOYEES out=EMPSORT;
by Lname Fname;
run;
C. proc sort out=SASUSER.EMPLOYEES data=WORK.EMPSORT;
by Lname Fname;
run;
D. proc sort data=SASUSER.EMPLOYEES out=SASUSER.EMPSORT;
by Lname and Fname;
run;
答案:B
本题知识点:永久数据集、临时数据集
逻辑库.成员逻辑库数据集
DATA weight; work(默认)临时的
DATA work.weight; work 临时的
DATA bikes.weight; Bikes 永久的
Q 27
Given the SAS data set WORK.TEMPS:
Day Month Temp
--- ----- ----
1 May 75
15 May 70
15 June 80
3 June 76
2 July 85
14 July 89
The following program is submitted:
proc sort data=WORK.TEMPS;
by descending Month Day;
run;
proc print data=WORK.TEMPS;
run;
Which output is correct?
A.
Obs Day Month Temp
--- --- ----- ----
1 2 July 85
2 14 July 89
3 3 June 76
4 1
5 June 80
5 1 May 75
6 15 May 7
B.
Obs Day Month Temp
--- --- ----- ----
1 1 May 75
2 2 July 85
3 3 June 76
4 14 July 89
5 15 May 70
6 15 June 80
C.
Obs Day Month Temp
--- --- ----- ----
1 1 May 75
2 15 May 70
3 3 June 76
4 1
5 June 80
5 2 July 85
6 14 July 89
D.
Obs Day Month Temp
--- --- ----- ----
1 15 May 70
2 1 May 75
3 15 June 80
4 3 June 76
5 14 July 89
6 2 July 85
答案:C
本题知识点:BY语句
BY <DESCENDING> variable-1 <…<DESCENDING variable-n> <NOTSORTED> <GROUPFORMAT>
当使用BY语句时,first.变量与last.变量才有效。

BY语句中变量默认是升序排列的。

DESCENDING(降序)只作用于它后面的第一个变量。

BY语句的排序是按字符的先后顺序排序的。

Q 28
Given the SAS data set WORK.P2000:
Location Pop2000
-------- -------
Alaska 626931
Delaware 783595
Vermont 608826
Wyoming 493782
and the SAS data set WORK.P2008:
State Pop2008
-------- -------
Alaska 686293
Delaware 873092
Wyoming 532668
The following output is desired:
Obs State Pop2000 Pop2008 Difference
1 Alaska 626931 686293 59362
2 Delaware 783595 873092 89497
3 Wyoming 493782 532668 38886
Which SAS program correctly combines the data?
A. data compare;
merge WORK.P2000(in=_a Location=State)
WORK.P2008(in=_b);
by State;
if _a and _b;
Difference=Pop2008-Pop2000;
run;
B. data compare;
merge WORK.P2000(rename=(Location=State))
WORK.P2008;
by State;
if _a and _b;
Difference=Pop2008-Pop2000;
run;
C. data compare;
merge WORK.P2000(in=_a rename=(Location=State))
WORK.P2008(in=_b);
by State;
if _a and _b;
Difference=Pop2008-Pop2000;
run;
D. data compare;
merge WORK.P2000(in=_a) (rename=(Location=State))
WORK.P2008(in=_b);
by State;
if _a and _b;
Difference=Pop2008-Pop2000;
run;
答案:C
本题知识点:MERGE语句IN选项、RENAME=选项
MERGE语句可以实现多表横向合并。

MERGE sas-data-set-1 <(data-set-options)> <…sas-data-set-n <(data-set-options)> <END=variable>;
IN=选项:创建一个标示变量,若当前观测属于某个数据集,标示为1,否则为0。

RENAME=(表达式)选项:在PDV中,对指定的变量更换变量名。

Q 29
The following SAS program is sumbitted:
data ;
infile 'DATAFILE.TXT';
input @1 Company $20. @25 State $2. @;
if State=' ' then input @30 Year;
else input @30 City Year;
input NumEmployees;
run;
How many raw data records are read during each iteration of the DATA step?
A. 1
B. 2
C. 3
D. 4
答案:B
本题知识点:指示器
指针控制相对位置绝对位置
列 +表达式值 @表达式值(可回跳)
行 / #表达式值(非回跳)
开始列未知,但已知待读取数据前的字符或单词,可用 @’字符或单词’。

指针控制的@放在变量前面,行固定符@放在变量后面。

固定符@与@@的区别:
∙@:用于一个数据行用多个INPUT语句读取,停留到下一个INPUT语句。

∙@@:用于一个数据行含有多个观测值读取时,停留留到下一个DATA步。

Q 30
You're attempting to read a raw data file and you see the following messages displayed in the SAS Log:
NOTE: Invalid data for Salary in line 4 15-23.
RULE: ----+----1----+----2----+----3----+----4----+----5--
4 120104 F 46#30 11MAY1954 33
Employee_Id=120104 employee_gender=F Salary=. birth_date=-2061 _ERROR_=1 _N_=4
NOTE: 20 records were read from the infile 'c:\employees.dat'.
The minimum record length was 33.
The maximum record length was 33.
NOTE: The data set WORK.EMPLOYEES has 20 observations and 4 variables.
What does it mean?
A. A compiler error, triggered by an invalid character for the variable Salary.
B. An execution error, triggered by an invalid character for the variable Salary.
C. The 1st of potentially many errors, this one occurring on the 4th observation.
D. An error on the INPUT statement specification for reading the variable Salary.
答案:B
本题知识点:数据错误
数据错误是指数据不适合定义的数据格式,就会出现数据报错。

如给数值型变量赋值字符,就会报错。

当出现数据错误时,程序不会中断。

Q 31
Given the following raw data records in DATAFILE.TXT:
----|----10---|----20---|----30
Kim,Basketball,Golf,Tennis
Bill,Football
Tracy,Soccer,Track
The following program is submitted:
data WORK.SPORTS_INFO;
length Fname Sport1-Sport3 $ 10;
infile 'DATAFILE.TXT' dlm=',';
input Fname $ Sport1 $ Sport2 $ Sport3 $;
run;
proc print data=WORK.SPORTS_INFO;
run;
Which output is correct based on the submitted program?
A.
Obs Fname Sport1 Sport2 Sport3
1 Kim Basketball Golf Tennis
2 Bill Football
3 Tracy Soccer Track
B.
Obs Fname Sport1 Sport2 Sport3
1 Kim Basketball Golf Tennis
2 Bill Football Football Football
3 Tracy Soccer Track Track
C.
Obs Fname Sport1 Sport2 Sport3
1 Kim Basketball Golf Tennis
2 Bill Football Tracy Soccer
D.
Obs Fname Sport1 Sport2 Sport3
1 Kim Basketball Golf Tennis
2 Bill Football
答案:C
本题知识点:INFILE语句选项MISSOVER
参考第5题。

Q 32
Consider the following data step:
data WORK.NEW;
set WORK.OLD;
Count+1;
run;
The variable Count is created using a sum statement. Which statement regarding this variable is true?
A. It is assigned a value 0 when the data step begins execution.
B. It is assigned a value of missing when the data step begins execution.
C. It is assigned a value 0 at compile time.
D. It is assigned a value of missing at compile time.
答案:C
本题知识点:累加语句
variable + expression;
等价于
retain varibale 0;
vaiable=variable+1;
变量必须是数值类型,初始值只能是0。

x+1;
x+(-1); /*每次执行减少1,不能写成x-1*/
x+(y=z); /*若y=z,返回1,则x累加1,否则不累加*/
在实际中,一般使用retain语句代替累加语句。

retain语句的初始值可以是一个非零值。

Q 33
The following SAS program is submitted:
data WORK.TEST;
set WORK.PILOTS;
if Jobcode='Pilot2' then Description='Senior Pilot';
else Description='Unknown';
run;
The value for the variable Jobcode is: PILOT2.
What is the value of the variable Description?
A. PILOT2
B. Unknown
C. Senior Pilot
D. ' ' (missing character value)
答案:B
本题知识点:SAS中的大小写
在SAS中,语句是不区分大小写的,但是字符型变量的数据值是区分大小写的。

Q 34
A user-defined format has been created using the FORMAT procedure. How is it stored?
A. in a SAS catalog
B. in a memory resident lookup table
C. in a SAS dataset in the WORK library
D. in a SAS dataset in a permanent SAS data library
答案:A
本题知识点:PROC FORMAT过程中格式存储位置
FORMAT过程在编译后,存储在Work.Formats、Sasuser.Format目录中。

Q 35
Given the SAS data set SASDATA.TWO:
X Y
-- --
5 2
3 1
5 6
The following SAS program is submitted:
data
SASUSER.ONE
SASUSER.TWO
OTHER;
set SASDATA.TWO;
if X eq 5 then output SASUSER.ONE;
if Y lt 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.。

相关文档
最新文档