SAS - 问题和答案

亲爱的读者,这些 SAS 面试问题是专门为让您了解您在面试 SAS 编程主题时可能遇到的问题的性质而设计的。 根据我的经验,好的面试官几乎不打算在你的面试中问任何特定的问题,通常问题从主题的一些基本概念开始,然后根据进一步的讨论和你的回答继续 −

DO WHILE 表达式在 DO 循环的顶部进行计算。 如果表达式在第一次计算时为假,则 DO 循环永远不会执行。 而 DO UNTIL 至少执行一次。

字符、数字

通过使用 MAXDEC= 选项

这两个过程的区别在于 PROC MEANS 默认生成报告。 相反,要在 PROC Summary 中生成报告,您必须在 PROC Summary 语句中包含 PRINT 选项。

通过使用 TABLES 语句。

双尾符号 (@@) 告诉 SAS 保留当前输入记录以执行下一个 INPUT 语句,而不是前进到新记录。

使用 DROP、KEEP 语句和数据集选项。

它产生 MIN、MAX、MEAN 和 STD DEV 的默认统计数据。

PDV 是内存中的一个逻辑区域。PDV 是在创建输入缓冲区之后创建的。 SAS在内存的PDV区域构建数据集

它也可用于在不创建数据集的情况下写入输出。

通过使用带有 NODUPKEY 和 NODUP 选项的 PROC SORT。

NODUPKEY 选项删除重复观察,其中 BY 语句中列出的变量的值重复,而 NODUP 选项删除重复观察,其中所有变量中的值重复(相同的观察)

在 PROC SORT 代码中使用 DESCENDING 关键字。

通过使用 PUT 函数创建一个不同名称的变量。

通过使用 INPUT 函数创建一个不同名称的变量。

SET 连接数据集,其中 MERGE 匹配数据集的观察值

SYMPUT 将数据集中的值放入宏变量中,而 SYMGET 将宏变量中的值放入数据集。

INTNX 函数将日期、时间或日期时间值提前给定间隔,并返回日期、时间或日期时间值

RETAIN 语句告诉 SAS 在从 DATA 步的当前迭代转到下一个迭代时不要将变量设置为缺失。 相反,SAS 保留这些值。

%EVAL 不能对具有浮点值的操作数执行算术计算。 这是 %SYSEVALF 函数出现的时候。

它执行简单和多元回归、方差分析 (ANOVAL)、协方差分析、多变量方差分析和重复测量方差分析。

SAS INFORMATS 用于从称为平面文件 ASCII 文件、文本文件或顺序文件的外部文件读取或输入数据。该信息将告诉 SAS 如何将数据读入 SAS 变量。

Scan(argument,n,delimiters)

Scan, Substr, trim, Catx, Index, tranwrd, find, Sum.

TRANWRD 函数替换或删除字符串中出现的所有字符模式。

INFILE 语句用于标识外部文件,而 INPUT 语句用于描述您的变量。

在 INFILE 语句上使用 MISSOVER 选项时,INPUT 语句在读取短行时不会跳转到下一行。 相反,MISSOVER 将变量设置为缺失

使用 FIRSTOBS = 和 OBS = 语句。

SUM 函数返回非缺失参数的总和,而"+"运算符在任何参数缺失时返回缺失值。

SUBSTR 函数用于从字符变量中提取子字符串。

ceil 函数返回大于/等于参数的最小整数,而 floor 返回小于/等于参数的最大整数。

SCAN 提取由分隔符标记的值中的单词。 SUBSTR 通过说明特定位置来提取值的一部分。 当我们知道要从字符值中提取的子字符串的确切位置时,最好使用它。

使用带有 COUNT(DISTINCT variable_name) 的 PROC SQL 来确定列的唯一值的数量。

有一些系统选项可用于调试 SAS 宏:MPRINT, MLOGIC, SYMBOLGEN

Use PROC PRINTTO

在多对多关系的情况下,数据步骤 MERGE 不会创建笛卡尔积。 然而,Proc SQL 产生一个笛卡尔积。

2 bytes 和 1 byte.

Procs 是具有特定目的的子例程,数据步骤旨在读取和操作数据。

数据步骤中的 PUT(格式化)语句。

where 语句

输入函数 - 字符到数字的转换 - Input(source,informat) 和 put 函数 - 数字到字符的转换 - put(source,format)

不,它必须是字符数据类型。

观察的数量仅受计算机处理和存储它们的能力的限制。

通过使用 MAXDEC= 选项

BY 处理要求您的数据已经按 BY 变量的顺序排序或索引。

通过使用 TABLES 语句。

Five

proc 方法会给出描述性的统计信息。 默认情况下,它会在输出窗口中给出输出。但过程摘要不会作为默认值给出输出。我们需要给出一个选项打印然后只有它会给出输出。

在数据语句中的"/"之后使用 Debug 子句。

使用 MISSOVER 关键字。