1、input的输入格式
字符型变量默认8个字符,若使用input语句时,原文件字符长度超过8个字符,如果不加以说明,此时input会将字符截断为8个字符,如下:
代码1:
data a;
input name $ age;
cards;
xiaomingd5 3
xiaohong 4
;
run;
此时第一个变量xiaomingd5将被截断,生成的结果为:
若使用input格式输入时,在$加上字符的长度,此时在读取时,就会按照指定的长度读取数据,将上面代码改为:
代码2:
data a;
input name $9. age;
cards;
xiaomingd5 3
xiaohong 4
;
run;
此时第一个变量xiaomingd5的长度将会改变为9个字符,生成的结果为:
你会注意到name是改变了,但是两次的age结果不一样,这是为什么?
因为input语句总是从第1列开始读取数据,因此第一个变量name $9. 从第一列读到第9列,无论其中是否有分隔符。age变量的起始点在第10列,sas开始从第10列读取age之,所以代码2中age的值是5。
能否正确读取age值呢?可以的,使用冒号修饰符:


3205

被折叠的 条评论
为什么被折叠?



