SAS – 数字格式
SAS – 数字格式
SAS 可以处理多种数字数据格式。它在变量名称的末尾使用这些格式将特定的数字格式应用于数据。SAS 使用两种数字格式。一种用于读取称为informat的数字数据的特定格式,另一种用于以称为输出格式的特定格式显示数字数据。
句法
数字信息的语法是 –
Varname Formatnamew.d
以下是所用参数的描述 –
-
Varname是变量的名称。
-
Formatname是应用于变量的数字格式的名称。
-
w是允许为变量存储的最大数据列数(包括小数点后的数字和小数点本身)。
-
d是小数点右边的位数。
读取数字格式
下面是用于将数据读入 SAS 的格式列表。
输入数字格式
Format | 采用 |
---|---|
n. |
无小数点的最大“n”列数。 |
n.p |
带有“p”个小数点的最大“n”列数。 |
COMMAn.p |
带有“p”小数位的最大“n”列数,可删除任何逗号或美元符号。 |
COMMAn.p |
带有“p”小数位的最大“n”列数,可删除任何逗号或美元符号。 |
显示数字格式
类似于在读取数据时应用格式,下面是用于在 SAS 程序的输出中显示数据的格式列表。
输出数字格式
Format | 采用 |
---|---|
n. |
写下最大“n”位数,不带小数点。 |
n.p |
用“p”个小数点写出最大“np”列数。 |
DOLLARn.p |
用 p 个小数位、前导美元符号和逗号在千位上写下最多“n”个列。 |
请注意 –
-
如果小数点后的位数少于格式说明符,则将在末尾附加零。
-
如果小数点后的位数大于格式说明符,则最后一位将被四舍五入。
例子
下面的例子说明了上述场景。
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.