SAS - 数字格式
SAS 可以处理多种数字数据格式。 它在变量名称的末尾使用这些格式来将特定的数字格式应用于数据。 SAS 使用两种数字格式。一种用于读取特定格式的数值数据,称为informat信息,另一种用于以特定格式显示数值数据,称为output format输出格式。
语法
数字信息的语法是 −
Varname Formatnamew.d
以下是使用的参数说明 −
Varname 是变量的名称。
Formatname 是应用于变量的数字格式的名称。
w 是允许为变量存储的最大数据列数(包括小数点后的数字和小数点本身)。
d 是小数点右边的位数。
读取数字格式
以下是用于将数据读入 SAS 的格式列表。
输入数字格式
格式 | Use |
---|---|
n. | 不带小数点的最大"n"列数。 |
n.p | 带有"p"个小数点的最大"n"列数。 |
COMMAn.p | 最大"n"个列,小数点为"p",删除任何逗号或美元符号。 |
COMMAn.p | 最大"n"个列,小数点为"p",删除任何逗号或美元符号。 |
显示数字格式
类似于在读取数据时应用格式,下面是用于在 SAS 程序的输出中显示数据的格式列表。
输出数字格式
格式 | Use |
---|---|
n. | 写入最大"n"位数,不带小数点。 |
n.p | 用"p"小数点写入最大"n.p"列数。 |
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.