阅读(3010) (0)

SAS数字格式

2016-12-12 13:47:31 更新

SAS可以处理各种数字数据格式。 它在变量名的末尾使用这些格式,以向数据应用特定的数字格式。 SAS使用两种数字格式。 一个用于读取数字数据的特定格式,称为informat,另一个用于显示称为输出格式的特定格式的数字数据。

句法

数字信息的语法是:

Varname Formatnamew.d

以下是使用的参数的描述:

  • VARNAME是变量的名称。
  • FORMATNAME是应用于变量的数字格式的名称。
  • w是允许为变量存储的数据列的最大数量(包括小数点后的数字和小数点本身)。
  • d是小数右边的位数。

读取数字格式

下面是用于将数据读入SAS的格式列表。

输入数字格式

格式 使用
n.
最大“n”个没有小数点的列数。
n.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    # 只有两个整数在十进制之前可用,两个可用在十进制之后。