SAS可以处理各种数字数据格式。 它在变量名的末尾使用这些格式,以向数据应用特定的数字格式。 SAS使用两种数字格式。 一个用于读取数字数据的特定格式,称为informat,另一个用于显示称为输出格式的特定格式的数字数据。
句法
数字信息的语法是:
Varname Formatnamew.d
以下是使用的参数的描述:
- VARNAME是变量的名称。
- FORMATNAME是应用于变量的数字格式的名称。
- w是允许为变量存储的数据列的最大数量(包括小数点后的数字和小数点本身)。
- d是小数右边的位数。
读取数字格式
下面是用于将数据读入SAS的格式列表。
输入数字格式
格式 | 使用 |
---|---|
n. |
最大“n”个没有小数点的列数。 |
n.p |
最多“n”个带“p”小数点的列数。 |
COMMAn.p | COMMAn.p最大“n”个具有“p”小数位的列,删除任何逗号或美元符号。 |
COMMAn.p | COMMAn.p最大“n”个具有“p”小数位的列,删除任何逗号或美元符号。 |
显示数字格式
类似于在读取数据时应用格式,以下是用于在SAS程序的输出中显示数据的格式的列表。
输出数字格式
n. |
写入最大“n”位数,不带小数点。 |
n.p |
写入最大“n.p”个带“p”小数点的列数。 |
DOLLARn.p |
使用p个小数位数写入最大“n”列,前面带有美元符号,在第千个位置使用逗号。 |
请注意:
- 如果小数点后的位数小于格式说明符,则在结尾处附加零。
- 如果小数点后的位数大于格式说明符,则最后一位数字将四舍五入。
例子
下面的例子说明了上述情况。
DATA MYDATA1; input x 6.; /*数据的最大宽度*/ format x 6.3; datalines; 8722 93.2 .1122 15.116 PROC PRINT DATA = MYDATA1; RUN; DATA MYDATA2; input x 6.; /*数据的最大宽度*/ format x 5.2; datalines; 8722 93.2 .1122 15.116 PROC PRINT DATA=MYDATA2; RUN; DATA MYDATA3; input x 6.; /*数据的最大宽度*/ format x DOLLAR10.2; datalines; 8722 93.2 .1122 15.116 PROC PRINT DATA=MYDATA3; RUN;
当我们执行上面的代码,它会产生以下结果:
# MYDATA1. Obs x 1 8722.0 # 显示6个十进制后附加零的列。 2 93.200 # 显示6个小数后附加零的列。 3 0.112 # 十进制之前没有整数,因此在十进制后显示3个可用数字。 4 15.116 # 显示6个十进制后有3位可用数字的列。 # MYDATA2 Obs x 1 8722 # 显示5列。 只有4个可用。 2 93.20 # 显示5个十进制后附加零的列。 3 0.11 # 显示5个小数点后2位的列。 4 15.12 # 显示5个小数点后2位的列。 # MYDATA3 Obs x 1 $8,722.00 # 显示10列带有$符号,逗号在第千个位置,零在十进制后附加。 2 $93.20 # 只有两个整数在十进制之前可用,一个可用在十进制之后。 3 $0.11 # 十进制之前没有整数,十进制后有两个可用。 4 $15.12 # 只有两个整数在十进制之前可用,两个可用在十进制之后。