SAS - 输入方法



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

  • 列表输入法
  • 命名输入法
  • 列输入法
  • 格式化输入法

每种输入方法的详细信息如下所述。

列表输入法

在这种方法中,变量列出数据类型。仔细分析原始数据,以便声明的变量顺序与数据匹配。分隔符(通常为空格)应在任何一对相邻列之间保持一致。任何缺失数据都会导致输出问题,因为结果将不正确。

示例

以下代码及其输出显示了列表输入法的使用。

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

命名输入法

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

示例

以下代码及其输出显示了命名输入法。

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

列输入法

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

示例

以下代码显示了列输入法。

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

格式化输入法

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

示例

以下代码显示了格式化输入法。

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
广告