SAS中自定义格式可通过proc format过程来实现,它的基本形式为:
- invalue:定义输入格式,并需给该模式设立格式名,而< >为可选项,在其中的内容可加可不加,若自定义的“输入格式”是字符,需要在“格式名”前加上$符号;
- value:定义输出格式,并起个名字(“格式名”),若“变量值或范围”是字符,需要在“格式名”前面加上$符号;
- picture:定义数值的显示样式模板。
用invalue和value自定义格式
“自变量或范围”既可以是某个变量值,也可以是某个范围,举例说明:
举例说明:
在上例中,虽然自定义的输入变量grade本身值1~4都只有1位宽度,但上述程序指定的输入格式,也就是SAS真正读取的是Freshman、Sophomore、Junior、Senior,它们并不是1位,所以需要用冒号加宽度20的方式读取。
- format VS proc format
proc format是一个过程,在这个过程中,可以自定义想要的格式;而format只是语句,将变量与某种输出格式关联起来,让变量按这种格式输出,这种输出格式既可以是SAS自带的,也可以是proc format自定义的。
用picture照个输出模板
format语句定义的输出格式,定义的对象是值,而picture则是定义一种显示的样式。举例说明:
- low-high:指定数值范围是从最低值到最高值;
- pro的自定义格式中的“0”和“9”:
用0表示则会自动舍去数字前面的0,而1-9则不会,比如0.72指定为“00.00”格式,会显示为72%;若指定为“99.99”则为00.72%;若为“09.99”则为0.72%(最后为毛是0.72%其实我木有搞明白
)。