SAS作为一种强大的数据处理和图形展示工具,在数据科学家和分析师中占有重要地位。最近对SAS进行了一项技能测试。本次测试的主题是SAS的基础编程。测试既考察了理论知识也考察了实践能力,共有977人参与了此次测试。如果错过了这次与其他SAS从业者比较自己技能的机会,可以通过以下问题自检测,看看能正确回答多少个问题。
以下是分数分布情况,这将帮助评估自己的表现: 。 超过230人参与了技能测试,最高分为35分。以下是一些关于分数分布的统计数据。
总体分布: 平均分:17.73 中位数:19 众数:22
SAS学习路径和资源 - SAS中的商业分析师
SAS中合并的全面介绍
SAS中数据探索的全面指南(使用数据步和Proc SQL)
问题1:以下哪个是输出数据集中变量c的值?
data work.one;
a = 2;
b = 3;
c = a ** b;
run;
A) 6
B) 9
C) 8
D) 以上都不是
答案:(C)
**是指数运算符,所以c = a ** b = 2 ** 3 = 8
问题2:以下哪个语句不能是“PROC FREQ”的一部分?
A) OUTPUT
B) WEIGHT
C) SET
D) Tables
E) 以上都不是
答案:(C)
查看PROC FREQ的语法,不需要SET语句。
Proc Freq <options>;
BY variables;
EXACT statistic-options < computation-options>;
OUTPUT < OUT= SAS-data-set > options;
TABLES requests < options>;
TEST options;
WEIGHT variable < option>;
RUN;
问题3:提交了以下PROC SORT步骤,它生成了一个输出数据集。
proc sort data = AV.employee out = employee;
by Designation;
run;
输出数据集存储在哪个库中?
A) Work
B) AV
C) SASHELP
D) SASUSER
答案:(A)
如果没有明确提供库名称,则会自动引用临时库“WORK”。
问题4-7:以下是两个表格:
问题4) 执行以下SAS程序后,“AV”表中会有多少个变量?
data AV;
merge Employee Salary;
by name;
totsal + salary;
run;
A) 3
B) 4
C) 5
答案:(B)
如果在数据步程序中使用任何变量名称,它将自动在输出数据集中创建。这里,两个表中有三个独特的变量“name”,“age”,“salary”和一个在数据集中创建的变量“totsal”。
问题5:执行以下SAS程序后,AV数据集会有多少条观测?
data AV;
merge employee (in=ine) salary(in=ins);
by name;
run;
A) 4
B) 2
C) 1
D) 6
答案:(D)
以上看到的输入数据集,Employee和Salary之间存在一对多的关系。要了解更多关于SAS中合并的信息,请。
问题6:执行以下SAS程序后,AV数据集中会有多少条观测?
data AV;
merge employee (in=ine) salary(in=ins);
by name;
if ins=0;
run;
A) 4
B) 2
C) 1
D) 6
答案:(B)
这里,谈论的是“in”变量,并查看下面的表格以了解in变量的值:在这个程序中,正在寻找ins = 0的观测,这意味着“name”值在“Salary”表中不可用。在上面的表中,只有两条记录满足该条件。
问题7:以下哪个命令将帮助将表“Salary”中的列“Salary”重命名为“Compensation”? A) Data Salary (Rename (Salary = Compensation)); Set Salary; run; B) Data Salary (Rename = (Salary = Compensation)); Set Salary; run; C) Data Salary (Rename = (Salary == Compensation)); Set Salary; run; D) 以上都不是 答案:(B) SAS中重命名变量的语法是: RENAME = (Old_Var1 = NewVar1 Old_Var2=New_Var2 Old_Var3=New_Var3 …)
问题8:以下哪个陈述关于下面的程序不正确?
data AV;
do year=2000 to 2004;
Capital+5000;
capital+(capital*.10);
output;
end;
run;
OUTPUT语句立即将当前值写入数据集
在这种情况下,新数据集中最后一年是2005
OUTPUT语句覆盖了DATA步骤末尾的自动输出
DO循环执行了5次
答案:(B)
在上面的程序中,在END语句之前写入输出数据集,这意味着它不会将最后一个值2005写入输出数据集,所以最后一个值将是2004。如果移除OUTPUT语句,最后一个值将是2005。
问题9:如何限制DATA步骤中写入输出数据集的变量? DROP KEEP RETAIN VAR A和B A、B或C 答案:(E) DROP和KEEP都可以用来限制数据集中的变量。 DROP=选项告诉SAS想要删除的变量。如果将DROP=选项放在SET语句上,SAS在读取输入数据集时会删除指定的变量;如果将DROP=选项放在DATA语句上,SAS在写入输出数据集时会删除指定的变量。 KEEP=选项告诉SAS想要保留的变量。如果将KEEP=选项放在SET语句上,SAS在读取输入数据集时会保留列出的变量。另一方面,如果将KEEP=选项放在DATA语句上,SAS在写入输出数据集时会保留指定的变量。
问题10:以下哪个语句用于读取分隔的原始数据文件并创建SAS数据集? DATA和SET DATA、SET和INFILE DATA、SET和INPUT DATA、INFILE和INPUT 答案:(D) SET不能用于读取原始数据文件。SET用于从一个或多个SAS数据集中读取数据。
问题11-12:以下是来自csv文件“Emp.csv”的数据:
员工编号,性别,姓名,出生日期,地点,薪水,经理员工编号
这个数据集是关于公司员工的
101,M,John,12/1/1995,Delhi,350000,101
102,F,Sangeeta,7/4/1980,Delhi,450000,103
103,F,Mary,3/5/1973,Mumbai,500000,101
104,M,Richard,6/25/1975,Mumbai,750000,101
105,M,Fredrick,8/20/1990,Delhi,320000,101
并且,以下代码用于读取名为EMP的文件。
问题11)如果运行以下SAS语句来读取“emp.csv”文件,输出会是什么?
data WORK.EMP;
infile'C:\AV\Skilltest\Emp.csv'dlm=',' ;
input
Employee_id $
Gender $
Name $
DOB
Location $
Salary
Manager_Emp_ID;
run;
A.
B.
C.
D. 以上都不是
答案:(C)
INFILE语句从CSV的第一行开始读取,也可能是标题行,所以需要明确指定开始行。