Sas 简明教程

SAS - Numeric Formats

SAS 可以处理多种数值数据格式。它在变量名称的末尾使用这些格式,将特定的数值格式应用到数据。SAS 使用两种数值格式。一种用于读取称为 informat 的数值数据的特定格式,另一种用于以称为 output format 的特定格式显示数值数据。

Syntax

数值信息格式的语法为 −

Varname Formatnamew.d

以下是所用参数的描述 -

  1. Varname 是变量的名称。

  2. Formatname 是应用到变量的数值格式的名称。

  3. w 是允许为该变量存储的最大数据列数(包括小数点后的位数和小数点本身)。

  4. d 是小数点右边的位数。

Reading Numeric formats

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

Input Numeric Formats

Format

Use

n.

最大“n”列数,无小数点。

n.p

最大“n”列数,有“p”个小数点。

COMMAn.p

最大“n”列数,有“p”个小数位,并去除逗号或美元符号。

COMMAn.p

最大“n”列数,有“p”个小数位,并去除逗号或美元符号。

Displaying Numeric formats

与在读取数据时应用格式类似,以下是用于在 SAS 程序的输出中显示数据的格式列表。

Output Numeric Formats

Format

Use

n.

最多写入“n”个没有小数点的数字。

n.p

用 Gemini 最多写入 "n.p" 列 数,其中 "p" 为小数点位数。

DOLLARn.p

使用十进制位数 "n"、美元符号和大千分位逗号写入最大列数。

请注意−

  1. 如果小数点后面的数字少于格式说明符,那么将在末尾附加*零*。

  2. 如果小数点后面的数字多于格式说明符,则最后的数字将为 rounded off

Examples

以下示例说明了上述情况。

DATA MYDATA1;
input x 6.; /*maxiiuum width of the data*/
format x 6.3;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA1;
RUN;

DATA MYDATA2;
input x 6.; /*maximum width of the data*/
format x 5.2;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA2;
RUN;
DATA MYDATA3;
input x 6.; /*maximum width of the data*/
format x DOLLAR10.2;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA3;
RUN;

当我们执行以上代码时,会产生以下结果 -

# MYDATA1.
Obs 	x
1 	8722.0 # Display 6 columns with zero appended after decimal.
2 	93.200 # Display 6 columns with zero appended after decimal.
3 	0.112  # No integers before decimal, so display 3 available digits after decimal.
4 	15.116 # Display 6 columns with 3 available digits after decimal.

# MYDATA2
Obs 	x
1 	8722  # Display 5 columns. Only 4 are available.
2 	93.20 # Display 5 columns with zero appended after decimal.
3 	0.11  # Display 5 columns with 2 places after decimal.
4 	15.12 # Display 5 columns with 2 places after decimal.

# MYDATA3
Obs 	x
1 	$8,722.00 # Display 10 columns with leading $ sign, comma at thousandth place and zeros appended after decimal.
2 	$93.20    # Only 2 integers available before decimal and one available after the decimal.
3 	$0.11	  # No integers available before decimal and two available after the decimal.
4 	$15.12    # Only 2 integers available before decimal and two available after the decimal.