Sas 简明教程

SAS - Input Methods

输入方法用来读取原始数据。原始数据可能是来自外部源或来自流式数据线。输入语句用您分配给每个字段的名称创建一个变量。所以您必须在输入语句中创建一个变量。同一个变量将显示在 SAS 数据集的输出中。下面是 SAS 中提供给不同输入方法。

  1. List Input Method

  2. Named Input Method

  3. Column Input Method

  4. Formatted Input Method

下面介绍了每种输入方法的详细信息。

List Input Method

在这种方法中,变量被列出数据类型。原始数据被仔细分析,以便匹配声明变量的顺序和数据。分隔符(通常为空格)在任何相邻列的之间应该统一。任何缺失数据都会导致输出结果错误,从而产生问题。

Example

以下代码和输出演示了列表输入方法的使用。

DATA TEMP;
INPUT   EMPID ENAME $ DEPT $ ;
DATALINES;
1 Rick  IT
2 Dan  OPS
3 Tusar  IT
4 Pranab  OPS
5 Rasmi  FIN
;
PROC PRINT DATA = TEMP;
RUN;

运行上述代码时,我们会得到以下输出。

list n named input

Named Input Method

在这种方法中,变量被列出数据类型。原始数据被修改,以便匹配数据之前声明的变量名。分隔符(通常为空格)在任何相邻列的之间应该统一。

Example

以下代码和输出演示了命名输入方法的使用。

DATA TEMP;
INPUT
EMPID= ENAME= $ DEPT= $ ;
DATALINES;
EMPID = 1 ENAME = Rick  DEPT = IT
EMPID = 2 ENAME = Dan  DEPT = OPS
EMPID = 3 ENAME = Tusar  DEPT = IT
EMPID = 4 ENAME = Pranab  DEPT = OPS
EMPID = 5 ENAME = Rasmi  DEPT = FIN
;
PROC PRINT DATA = TEMP;
RUN;

运行上述代码时,我们会得到以下输出。

list n named input

Column Input Method

此方法中,将变量与数据类型和列的宽度放在一起,其中宽度指定数据单列的值。例如,如果员工姓名最多包含 9 个字符,并且每个员工姓名都从第 10 列开始,则员工姓名变量的列宽为 10-19。

Example

下面的代码显示了列输入方法的用法。

DATA TEMP;
INPUT   EMPID 1-3 ENAME $ 4-12 DEPT $ 13-16;
DATALINES;
14 Rick     IT
241Dan      OPS
30 Sanvi    IT
410Chanchal OPS
52 Piyu     FIN
;
PROC PRINT DATA = TEMP;
RUN;

当我们执行以上代码时,会产生以下结果 -

column n formatted input

Formatted Input Method

此方法从固定起始点读取变量,直到遇到空格。因为每个变量都有固定的起始点,任何一对变量之间的列数便成为第一个变量的宽度。字符“@n”用于将变量的起始列位置指定为第 n 列。

Example

下面的代码显示了格式化输入方法的用法

DATA TEMP;
INPUT   @1 EMPID $ @4 ENAME $ @13 DEPT $ ;
DATALINES;
14 Rick     IT
241 Dan      OPS
30 Sanvi    IT
410 Chanchal OPS
52 Piyu     FIN
;
PROC PRINT DATA = TEMP;
RUN;

当我们执行以上代码时,会产生以下结果 -

column n formatted input