输入方法用于读取原始数据。 原始数据可以来自外部源或来自流数据。 输入语句创建一个变量,其名称将分配给每个字段。 所以你必须在输入语句中创建一个变量。 相同的变量将显示在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;
在运行bove代码,我们得到以下输出。

命名输入方法
在此方法中,变量与数据类型一起列出。 原始数据被修改为在匹配数据前面声明变量名。 分隔符(通常为空格)在任何一对相邻列之间应该是一致的。
例
下面的代码和输出显示使用命名输入法。
- 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;
在运行bove代码,我们得到以下输出。

列输入法
在此方法中,变量列出的数据类型和列宽度指定单列数据的值。 例如,如果员工姓名包含最多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;
当我们执行上面的代码,它会产生以下结果:

格式化输入法
在该方法中,从固定的起始点读取变量,直到遇到空格。 由于每个变量都有固定的起始点,任何一对变量之间的列数将成为第一个变量的宽度。 字符“@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;
当我们执行上面的代码,它会产生以下结果:

转载本站内容时,请务必注明来自W3xue,违者必究。