【问题标题】:SAS base programming referencing a SAS data set引用 SAS 数据集的 SAS 基础编程
【发布时间】:2017-06-22 18:06:26
【问题描述】:

以下哪个程序正确引用了存储在永久 SAS 库中的名为 SalesAnalysis 的 SAS 数据集?

A) 
data saleslibrary.salesanalysis;
set mydata.quarter1sales;
if sales>100000;
run;

B)
data mysales.totals;
set sales_99.salesanalysis;
if totalsales>50000;
run;

C)
proc print data=salesanalysis.quarter1;
var sales salesrep month;
run;

D)
proc freq data=1999data.salesanalysis; 
tables quarter*sales;
run;

我的答案是(a.data saleslibrary.salesanalysis) 但解决方案说正确答案:(b. set mydata.quarter1sales),解释是:“Librefs 必须为 1 到 8 个字符长,必须以字母或下划线开头,并且只能包含字母、数字或下划线。之后您分配一个 libref,将其指定为 SAS 文件的两级名称中的第一个元素。”

但是问题要求 SalesAnalysis,那么解决方案有问题吗?我想知道“saleslibrary.salesanalysis”是否是原始库+文件名,而“mydata.quarter1sales”是输出数据的库名+文件名?

【问题讨论】:

  • 以后格式化你的代码
  • 你为什么要编辑你的问题来删除它?如果你这样做了,就没有理由回答你未来的任何问题。虽然我们回答问题是为了帮助您,但目标也是为未来的用户创建参考。事后删除或编辑问题是轻率的。

标签: sas


【解决方案1】:

正确答案是B。

  • A -> libname 引用太长,只能是 8 个字符。
  • B -> 是否引用了相关数据集。
  • C -> 再次,不是 将 salesAnalysis 称为数据集而不是库
  • D -> 库 名称不正确,不能以数字开头。

引用 SAS 数据集的格式是

 LIBNAME.dataSetName;

其中libname遵循问题中的规则,数据集名称规则也正确应用。

【讨论】:

    【解决方案2】:

    关键词是“引用”……而不是“创造”。假设您正在学习 BASE 9 考试……并且您有一个盗版学习指南。

    参考编辑前提供的原始格式化数据,答案实际上是b.,因为真正的答案b.读作set sales_99.salesanalysis;,只是标记为“f”。在您使用的学习指南中。这是有道理的,因为您可以假设您的答案(a.-n. 如图所示)可以分解为 4 个非常明显的数据步骤。

    关键字data会创建一个数据集,关键字set会引用一个

    【讨论】:

    • 太棒了!谢谢你。你绝对清除了我的疑虑!
    • NP。如果您需要,请接受作为答案。
    • 我不同意这个答案,只要 libname 和数据集名称是正确的,即使它创建了一个数据集,第一个也是正确的。这是不正确的,因为 libname 无效。
    猜你喜欢
    • 2018-09-04
    • 1970-01-01
    • 2015-04-20
    • 2015-08-14
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多