电子说
SAS input输入方法用于读取原始数据。原始数据可以来自外部源或来自流数据。输入语句创建一个变量,其名称将分配给每个字段。所以你必须在输入语句中创建一个变量。相同的变量将显示在SAS数据集的输出中。以下是SAS中可用的不同输入方法,每个输入方法的细节描述如下。
(1)list input列表输入:
分隔符固定(自由格式)的卡片数据或外部数据文件,用list输入法可以依次读入源数据中各个字段,一般要求每次读入的数据和变量个数相符,默认一个空格分隔符,也可以用其它分隔符,用dlm=指定分隔符,如有缺失值使用相应的占位符。
格式:input 变量1 变量2 变量3<$>…;
优点:使用简单,列出数据时不必上下对齐,不需要知道每个变量的具体列数而只需知道它的次序。
例1:
data stocks1;
input ticker** price Industry**;
cards;
ATT 55.25 TECH
LU 48.8 TECH
MSFT 67.87 TECH
;
run;
结果如下:
注意:在input语句中必须列出观测中的每一项数据对应的变量名而不能省略中间的某一个。
(2)Column input按列输入
使用Cloumn input时一定要正确数出每一项所占的位置。
格式:input 变量名<$>开始-结束列数
优点:Column input不要求数据项之间分开,所以经常用来输入紧缩格式的数据,对字段的选择比较灵活,可以任意选择字段和安排读入的次序,整个字段或其部分可以重复读入;
例2:
data stocks2;
input ticker$1-6 price 8-14 Industry$15-23;
cards;
ATT 55.25 TECH
LU 48.8 TECH
MSFT 67.87 TECH
;
run;
结果如下:
注意:对日期时间或包含美元符号、逗号或者其他字符的数值,按这种输入法就不行。
(3)Formatted input格式化输入
有时候原始数据不全是字符串或数值,比如1,00,001这样包括逗号的字符串值,电脑就不能读取,其他诸如包含美元符号、十六进制、压缩十进制的数据都是非标准数据。SAS中,informats可以用来告诉电脑如何读取这样的数值。使用Formatted input适用于字段固定格式的源数据,这种输入模式给出字段的开始列数,但不直接给出结束列数,而通过输入格式给出读入长度。
格式:input 指针控制 变量名 输入格式;
例3:
data stocks3;
input Name $ @10 birthday date9. @23 amount comma5.;
format birthday date9.;
cards;
John 12SEP1983 2,234
Smith 23JAN1992 1,345
Bob 03APR1985 4,234
Steve 08AUG1988 6,924
;
run;
结果如下:
注意:字符“@n”指明从第n列开始读入;字符“+n”指明前进n列后读入
全部0条评论
快来发表一下你的评论吧 !