根据提供的文件信息,我们可以总结出以下关键知识点:
### SAS Base Exam知识点分析
#### 考试概述
- **考试代码**: A00-201
- **考试名称**: SAS Base Programming
- **版本**: 11.30.06
- **资源**: 实际测试网站(Actualtests.com)
### 题目解析
#### 题目1: 数据集合并
- **题目描述**:在下面的SAS程序中,输入数据文件按照`NAMES`变量排序:
- `libname temp 'SAS-data-library';`
- `data temp.sales;`
- `merge temp.sales work.receipt;`
- `by names;`
- `run;`
- **问题**:当提交这个程序时会发生什么?
- **选项**:
- A. 程序成功执行并创建了一个临时SAS数据集。
- B. 程序成功执行并创建了一个永久SAS数据集。
- C. 程序执行失败,因为对同一SAS数据集进行了读取和写入操作。
- D. 程序执行失败,因为MERGE语句中的SAS数据集位于两个不同的库中。
- **答案**:B
**解析**:在这个例子中,由于`temp.sales`是在`temp`库中定义的永久数据集,并且在`merge`语句中使用了两个不同的数据集(一个来自`temp`库,另一个来自`work`库),因此可以成功合并这两个数据集,并且由于`data temp.sales`语句的存在,最终会创建一个永久的数据集。
#### 题目2: 观测值处理
- **题目描述**:当提交以下SAS程序时,数据集`SASDATA.PRDSALES`包含5000个观测值。
- `libname sas temp 'SAS-data-library';`
- `options obs=500;`
- `proc print data=sasdata.prdsales(firstobs=100);`
- `run;`
- `options obs=max;`
- `proc means data=sasdata.prdsales(firstobs=500);`
- `run;`
- **问题**:每个过程处理了多少观测值?
- **选项**:
- A. PROC PRINT 处理了400个观测值;PROC MEANS 处理了4500个观测值。
- B. PROC PRINT 处理了401个观测值;PROC MEANS 处理了4501个观测值。
- C. PROC PRINT 处理了401个观测值;PROC MEANS 处理了4500个观测值。
- D. PROC PRINT 处理了500个观测值;PROC MEANS 处理了5000个观测值。
- **答案**:B
**解析**:对于`PROC PRINT`,由于`firstobs=100`指定了从第100个观测值开始显示,而`options obs=500`指定了只显示前500个观测值,所以实际上显示的是第100到第500个观测值(共401个观测值)。对于`PROC MEANS`,由于`firstobs=500`指定从第500个观测值开始统计,而`options obs=max`表示显示所有观测值,因此实际统计的是第500到第5000个观测值(共4501个观测值)。
#### 题目3: 变量赋值与条件语句
- **题目描述**:提交以下SAS程序:
- `data work.new;`
- `length word $7;`
- `amount=7;`
- `if amount=5 then word='CAT';`
- `else if amount=7 then word='DOG';`
- `else work='NONE!!!';`
- `amount=5;`
- `run;`
- **问题**:下列哪一项代表了`AMOUNT`和`WORD`变量的值?
- **选项**:
- A. `amount word`
`5 DOG`
- B. `amount word`
`5 CAT`
- C. `amount word`
`7 DOG`
- D. `amount word`
`7 '' (缺失字符值)`
- **答案**:A
**解析**:在这个例子中,首先`amount`被赋值为7,因此根据条件语句,`word`被赋值为'DOG'。然后,`amount`被重新赋值为5,但此时`word`的值已经确定为'DOG',不会再发生变化。因此,最终结果是`amount`为5,`word`为'DOG'。
#### 题目4: SUM语句
- **题目描述**:关于SAS DATA步程序中的SUM语句,下列哪个陈述是真的?
- **选项**:
- A. 它仅与SUM函数一起有效。
- B. 它不适用于SET、MERGE和UPDATE语句。
- C. 它将表达式的值加到累加器变量中,并忽略缺失值。
- D. 它不会保留从一个SAS DATA步迭代到下一个迭代的累加器变量值。
- **答案**:C
**解析**:SUM语句用于在SAS DATA步中累积数值,它可以将一个表达式的值添加到累加器变量中,并且自动忽略任何缺失值,因此选项C是正确的。
#### 题目5: 控制流程
- **题目描述**:提交以下SAS程序:
- `data work.sets;`
- `do until(prod gt 6);`
- `prod + 1;`
- `end;`
- `run;`
- **问题**:下列哪一项是变量`PROD`的值?
**解析**:这段代码使用了一个`do-until`循环结构,循环直到`prod`的值大于6为止。每次循环`prod`增加1,从初始值0开始,循环会一直执行直到`prod`变为7,此时`prod gt 6`成立,循环结束。因此,`prod`的最终值为7。