【SAS模拟考试练习-2021.3.11】

时间:2021-10-11 14:08:36 浏览量:

SAS 模拟考试练习-2021.3.11[ 复制]

  考试时间为 1个小时 30 分钟

 请填写姓名:

 [填空题] *

 _________________________________

 实验题(8道大题)

 对于此考试期间的所有项目:

 所有输入数据集都存储在 C:\ cert \input 中。

 创建一个名为 cert 的库引用以引用此目录。

 所有最终输出数据集将存储在 C:\ cert \output中。

 创建一个名为 results 的库引用以引用此目录。

 程序中使用的临时数据集可以存储在结果库或工作库中。

 所有的改错题都在 C:\ cert \ error。

  1. 创建一个名为 cert 的库引用以引用 C:\ cert \input 中的数据集。

 创建一个名为 results 的库引用以引用 C:\ cert \output,所有最终输出数据集将存储在 C:\ cert \output 中。

 使用数据集 cert.input04。

 编写一个 SAS程序,它将:

 创建数据集 results.output04 在此程序中,按以下顺序完成以下操作:

 将 VAR1 和 VAR2舍入到最接近的整数值。

 将舍入后的 VAR1乘以舍入后的 VAR2,然后将新值分配给 VAR3。

 将 VAR13 至 VAR17(5 个变量)加在一起,忽略缺失值。

 将总和分配给VAR20。

 a) 求对于第 2条观测值,变量 VAR3的值是多少 b) 求对于第 16 条观测值,变量 VAR20 的值是多少 [填空题] * _________________________________ 答案解析:libname cert "c:\cert\input"; libname results "c:\cert\output"; data results.output04;

 set cert.input04;

 var3=round(var1,1)*round(var2,1);

 var20=sum(of var13-var17); run;

 proc print data=results.output04 (obs=2 firstobs=2);

  var var3; run; proc print data=results.output04 (obs=16 firstobs=16);

  var var20; run;

  2.创建一个名为 cert 的库引用以引用 C:\ cert \input 中的数据集。

 创建一个名为 results 的库引用以引用 C:\ cert \output,所有最终输出数据集将存储在 C:\ cert \output 中。

 使用数据集 cert.input08a 和 cert.input08b。

 这两个数据集都包含一个名为 ID的通用数字变量。

 编写一个程序,该程序将使用 SAS DATA步骤执行以下操作:

 通过匹配 ID变量的值来组合数据集 cert.input08a 和 cert.input08b。

 将两个数据集中的观测值仅写入到名为 results.match08 的新数据集中。

 将来自任何一个数据集的所有其他不匹配观测值写入名为 results.nomatch08 的新数据集。从 results.nomatch08中排除所有以“ ex”开头的变量。

 a) 求 results.match08 中有多少个观测值(行)

 b) 求 results. nomatch08 中有多少个观测值(行)

 [填空题] * _________________________________ 答案解析:libname cert "c:\cert\input"; libname results "c:\cert\output"; proc sort data=cert.input08a out=work.input08a;

 by ID; run; proc sort data=cert.input08b out=work.input08b;

 by ID; run;

 data results.match08 results.nomatch08 (drop=ex: );

 merge work.input08a (in=a) work.input08b (in=b);

 by ID;

 if a and b then output results.match08;

 else output results.nomatch08; run;

 proc contents data=results.match08; run;

 proc contents data=results.nomatch08; run;

  3.创建一个名为 cert 的库引用以引用 C:\ cert \input 中的数据集。

 创建一个名为 results 的库引用以引用 C:\ cert \output 目录,所有最终输出数据集将存储在 C:\ cert \output中。

 数据集 cert.input12 包含具有两个变量:

 salary year 编写一个 SAS程序,它将:

 创建一个输出数据集 results.output12。

 读取 cert.input12 作为输入。

 将 salary 变量每年增加 5.65%,直到超过$ 40,000。

 每增加一年,将 year变量增加 1。

 使输出数据集 results.output12 对每个年份值都有一个观测值。

 每个观察值都应具有年份和薪水变量。并打印出 results.output12 数据。

 [填空题] * _________________________________ 答案解析:libname cert "c:\cert\input"; libname results "c:\cert\output"; data results.output12;

 set cert.input12;

 do until (salary gt 40000);

 salary=salary*1.0565;

 year+1;

  output;

 end; run;

 proc print data=results.output12; run;

  4. 用 libname 方法引入 c:\cert\input中名为 input01 的 xlsx文件,要求数据集的名称叫 input01。

 a) 此文件中都有哪些 sheet 名称? b) 其中对第三个 sheetC页中的 height,gender 变量求平均数、求和、。

 c) 再查看第二个名为“sheetB”的页中的第 4条观测的变量 height,gender 是什么。

 [填空题] * _________________________________ 答案解析:libname input01 xlsx "c:\cert\input\input01.xlsx"; proc contents data = input01._all_; run; proc means data = input01.sheetC sum mean;

 var height gender; run; proc print data = input01."sheet BB"n (obs = 4 firstobs = 4);

 var height gender; run;

  5.创建一个名为 cert 的库引用以引用 C:\ cert \input 中的数据集。

 求数据集 cert.input05的属性里,encoding 和 lebel 的值分别是什么 [填空题] * _________________________________ 答案解析:libname cert "c:\cert\input"; proc contents data = cert.input05; run;

  6.创建一个名为 cert 的库引用以引用 C:\ cert \input 中的数据集。

 创建一个名为 results 的库引用以引用 C:\ cert \output,所有最终输出数据集将存储在 C:\ cert \output 中。

 使用数据集 cert.input27。

 编写一个 SAS 程序,它将:

 a) 创建输出数据集 result.output27a作为 cert.input27 的子集,其中 country 变量的值为“ US”(大小写的任意变化,例如 US或 us)。

 b) 对 results.output27a进行排序:首先按 state 升序排列,然后按 Postal_Code 降序排列,最后按 employee_ID升序排列。

 c) 求 results.output27a中第 100条观察值的 Employee_ID的值是多少。

 [填空题] * _________________________________ 答案解析:libname cert "c:\cert\input"; libname results "c:\cert\output"; proc sort data=cert.input27 out=results.output27a(where=(upcase(country)="US"));

 by state descending Postal_Code employee_ID; run;

 proc print data=results.output27a (firstobs=100 obs=100);

 var employee_ID; run;

  7.创建一个名为 cert 的库引用以引用 C:\ cert \input 中的数据集。

 创建一个名为 results 的库引用以引用 C:\ cert \output,所有最终输出数据集将存储在 C:\ cert \output 中。

 使用数据集 cert.input36。

 编写一个 SAS 程序,该程序将清除 cert.input36中的数据,如下所示:

 a) 第一步:

 创建一个临时数据集 cleandata36。在此数据集中,将所有 group 变量的数值转换为大写。

 然后仅保留变量 group 等于“ A”或“ B”的观察值。

 b) 第二步:

 确定 cleandata36 数据集中每个 group 的 Kilograms 变量的 MEDIAN值。

 将MEDIAN 舍入到最接近的整数。

 c) 第三步:

 从 cleandata36创建 results.output36 确保 Kilograms 的所有值都在 40到 200之间(包括 40和 200)。

 [填空题] * _________________________________ 答案解析:libname cert "c:\cert\input"; libname results "c:\cert\output"; data work.cleandata36;

  set cert.input36;

  group = upcase(group);

  if upcase(group) in ("A","B"); run;

 proc means data=work.cleandata36 median;

  class group;

  var kilograms; run;

 data results.output36;

  set cleandata36;

  if Kilograms < 40 or Kilograms > 200 ; run;

 proc contents data=results.output36; run;

  8. 改错题 data out;

 set cert.input44;

 length chol_status $ 15;

 drop=bp_status,weight_status, smoking_status;

 if cholesterol ne . then do;

 if cholesterol < 200 ;

 then chol_status="Safe";

  else if cholesterol <= 239 ;

  then chol_status="High-Borderline";

  else if cholesterol >= 240;

  then chol_status="High";

  end; run;

 proc contents data=out; run; [填空题] * 有五处错误 _________________________________ 答案解析:data out;

  set cert.input44;

  length chol_status $ 15;

  drop bp_status weight_status smoking_status;

  if cholesterol ne . then do;

  if cholesterol < 200 then chol_status="Safe";

  else if cholesterol <= 239 then chol_status="High-Borderline";

  else if cholesterol >= 240 then chol_status="High"; end; run;

 proc contents data=out; run;

  填空题(3道)

 9. libname myxlsx xlsx "C:\data\sales.xlsx"; proc print data = myxlsx.qtr1; run; (填空)

 在填空处,编写语句,该语句将从 Excel Workbook sales.xlsx 中删除库引用MYXLSX。

 [填空题] * _________________________________(答案:libname myxlsx clear;) 答案解析:libname myxlsx clear;

  10. 给定以下数据集 LABS(仅显示前 10行):

 SUBJID

 SAMPLDAT

  VALUE

 LABTEST 11001

  12OCT1987

  9.500

  CALCIUM 11001

  12OCT1987

  112.000 GLUCOSE 11001

  12OCT1987

  14.900

  HEMOGLOBIN 11001

  12OCT1987

  4.200

  POTASSIUM 11001

  12OCT1987

  5.070

  RBC 11001

  12OCT1987

  14.100

  WBC 11001

  19OCT1987

  8.800

  CALCIUM 11001

  19OCT1987

  91.000

  GLUCOSE 11001

  19OCT1987

  13.200

  HEMOGLOBIN 11001

  19OCT1987

  4.300

  POTASSIUM

 需要以下输出(仅显示前 5行):

 SUBJID SAMPLDAT _NAME_ CALCIUM GLUCOSE

  HEMOGLOBIN POTASSIUM

  RBC

 WBC 11001 12OCT1987

 VALUE

 9.50000

 112

 14.9000

 4.20000

 5.07000 14.1000 11001 19OCT1987

 VALUE

 8.80000

 91

 13.2000

 4.30000

 4.48000 14.1000 11001 25OCT1987

 VALUE

 9.20000

 76

 12.7000

 4.70000

 4.60000 11.7000 11002 12OCT1987

 VALUE

 9.20000

 103

 12.7000

 4.10000

 5.00000 13.5000 11002 18OCT1987

 VALUE

 8.40000

 209

  9.2000

  4.00000

 2.00000 14.1000

 编写以下 SAS程序以创建输出:

 proc transpose data=labs out=labstran;

 by subjid sampldat; <填空> run; 在文本框中,输入用于完成程序以产生所需输出的语句。忽略大小写,并应用标准SAS 语法规则。

 [填空题] * _________________________________(答案:ID LABTEST;) 答案解析:ID LABTEST;

  11.完成以下代码,以引用库 cert中包含的名为 data_in的数据集。

 必须使用程序中定义的宏变量来代替库名。

 %let library = cert.data_in; libname cert "C:\workshop\cert";

 data work.data_out;

 set <填空> run; [填空题] * _________________________________(答案:&library;) 答案解析:&library;

  选择题(20道)

 12.提交了以下 SAS 程序:

 data WORK.DATE_INFO; X=mdy(‘15’,01,1960) ;

 run; 变量 X的值是多少?( )

 [单选题] * A.数值 0 B.字符值“ 15011960”

 C.数值 14(正确答案)

 D.无法编译

 答案解析:在 SAS中,日期时间是以 1960年 1月 1日 0时 0 分 0秒作为起点的。因此,mdy(15,1,1960)=14。在本题中,日期函数的参数应该是数值,若是字符串,会先尝试字符串是否可以转换为数值,这是自动转换

  13.已使用 FORMAT过程创建了用户定义的格式。

 如何储存?( )

 [单选题] * A.在 SAS 目录中(正确答案) B.在内存常驻查询表中

 C.在 WORK库中的 SAS数据集中

 D.在永久 SAS数据库中的 SAS 数据集中

 答案解析:PROC FORMAT过程中格式存储位置。

 FORMAT 过程在编译后,存储在 Work.Formats、Sasuser.Format 目录中。

  14.提交了以下 SAS 程序:

 <空白> proc means data=SASUSER.SHOES; where Product in ("Sandal" , "Slipper" , "Boot"); run; <空白> 在上面两个位置插入的哪个 ODS 语句创建了存储在 html 文件中的报告?( )

 [单选题] * A. ods html open="sales.html"; ods html close;

 B.(正确答案)

 ods html file="sales.html";

 ods html close;

 C.

 ods file="sales.html" / html;

 ods file close;

 D.

 ods file html="sales.html"; ods file close;

 答案解析:PROC COTENTS过程 ODS 的主要输出目标:LISTING、RESULTS、OUTPUT、HTML、CSVALL、RTF、PDF、其他。

 ODS HTML 适用于数据较少的数据集、或汇总的数据集,如 TABULATE过程。

 所以答案为 ods html file="sales.html";

 ods html close;

 15.有如下 SAS程序 data course; input exam; datalines; 50.1; r...

相关热词搜索: 模拟考试 SAS