2.1 SAS变量的输入格式
- 输入格式的基本形式:
变量1 输入格式1 变量2 输入格式2 ......
而在SAS中的变量只有两种类型:字符型(character)和数值型(numeric)(日期在SAS中只作为数值型),这两种类型变量的输入格式如下:
- 数值型变量:
数值型变量的输入格式主要是w.d,其中,w表示数值的总位数或宽度(包括小数点),d表示数值的小数部分的位数。NOTE:即使没有小数,点号也一定要加上。
但是,绝大多数情况下,数值型变量后面是不加任何输入格式的,尤其是整数时,更不能随便加,例如:

其输出结果如下:

首先,SAS先根据设定的总位数读取数据,即12、2.1、15.6和23.4;其次,由于小数位数规定了2位,所以每个数必须有2位小数,所以2.1、15.6和23.4分别变为了2.10、15.60和23.40。而SAS读取整数时,若没有小数点就会自降为小数,因此,12变为了0.12。
- 字符型变量
字符型变量的输入格式主要是$w. 。其中,$符是必加的,w表示字节数(1个中文占2字节),因为SAS默认对字符只读取8位,一般只有变量宽度超8字节的时候才有必要加。只要加上宽度值,后面必须跟着“.”,若只有$符号,则不用。
- 日期型变量
日期型变量的输入格式很多,其中w表示日期的宽度,宽度不能超过32。

年月日之间可以加分隔符,若加上分隔符,它的宽度也要算进去。如果之间没有任何分隔符,此时SAS要求输入的月和日都要求为2位。
- 两个特殊输入符 “:”和“&”
- 冒号“:”的作用:
-
SAS虽然默认以空格作为变量分割的标志,但是一旦对变量指定了宽度,SAS就会以指定的宽度来识别变量。而在变量和输入格式之间加一个冒号,可以告诉SAS,若要读取下一个变量,需要满足下面任一条件:遇到空格或变量宽度读完。
-
当同一变量的不同数据有不同宽度时,可以指定所有数据中最大或更大的一个值,然后结合冒号读取。
-
冒号的用法是通用的,不管是数值型还是字符型都可以
-
格式:
var1: $w.
2、&符号的作用
若变量中有空格,需在变量后加上&符号,举例说明:

结果:

Note:
- &和:可以互换,但它们最好都放在$前面;
- 若每个变量值本身就有空格,那么变量之间就需要用2个或2个以上的空格隔开,这样SAS就会把这2个或2个以上的空格作为变量分割符
网友评论