SAS中的format可以控制数据的输出和输入格式,它分为format语句和format过程
FORMAT STATMENT
用于临时设置格式,语法为FORMAT variable(s) format-name,其中format-name可以是SAS的format,也可以用户自定义的,示例:
PROC FORMAT
语法为PROC FROMAT <options>; 其中选项可以是
LIBNAME=libref 用于指定存储你创建的format的library名子
FMTLIB 用于展示format具体的内容。
使用VALUE定义FORMAT
VALUE语句语法如下:
VALUE format-name
range1='label 1'
range2='label 2'
....;
注意一点,如果定义的format的对象作用于字符型,那必须在format-name前加一个$。
假设有如下cert.cars数据:
我们想要创建一张表,将Sex替换为M(1)F(2),Age替换为少年(<18)、成年(>=18且小于60)和老年(>=60),Color替换为Yellow(Y),Grey(G),White(W)和B(Black),我们可以使用if语句实现,也可以使用proc format实现
IF语句实现方法:
也可以使用FORMAT,方法如下:
其中有几个注意的地方:
1. 创建了3个format,名子分别是 Gender、Agegroup和Col
2. 因为Col后面应用的时候用在了字符型变量上,所在定义format的时候加了$
3. 通过format语句引用format的时候,要在format名子后加句号.
4. 其中有几个关健字,low、high和other,分别表示该类型的最小值、最大值和其他值(其他值包括缺失值和未定义的值)
5. low-<18 中,‘-’表示范围,'<'表示不包含
参考资料:SAS Certified Specialist Prep Guide