隐式小数位数 (DATA LIST 命令)
- 对于固定格式的数据,小数位可以在数据中编码,也可以由格式隐含。 如果隐含小数位但未在数据中输入小数位,那么程序会将每个值中最右边的数字解释为十进制数字。 值中的编码小数点将覆盖隐含的小数位数。 例如,
(DOLLAR,2)指定两个小数位。 值 123 解释为 1.23; 但是,值 12.3 解释为 12.3 ,因为编码的小数位数将覆盖隐含的小数位数。 - 对于自由字段数据,不能隐含小数位,但必须在数据中进行编码。 如果在格式中指定了小数位,但数据值不包含小数点,那么程序将用零填充小数位。 例如,使用
F3.1格式 (三列,小数点后一位) ,值 22 显示为 22.0。 如果数据中的值具有比格式中指定的小数位数更多的小数位数,那么在显示的输出中 (而不是在计算中) 会截断额外的小数位数。 例如,使用F3.1格式时,值 2.22 将显示为 2.2 ,即使在计算中该值仍为 2.22。
下表比较了如何对固定和自由字段格式的值进行解释。 表中的值用于四列数字变量。
|
示例
DATA LIST
/MODEL 1 RATE 2-6(PCT,2) COST 7-11(DOLLAR) READY 12-21(ADATE).
BEGIN DATA
1935 7878811-07-1988
2 16754654606-08-1989
3 17684783612-09-1989
END DATA.
- 数据采用内联格式和固定格式 (缺省值)。
- 每个变量后跟其列位置。 在列位置之后,将在括号中指定列样式格式。
- MODEL 以列 1 开头,宽为一列,并接收缺省数字
F格式。 - RATE 以列 2 开始,以列 6 结束。 使用两位小数指定
PCT格式。 使用逗号将格式类型与小数位数分隔开。 数据中未编码小数点。 因此,程序将每个值的最右边的数字作为十进制数字读取。 数据中第一个个案的值 935 解释为 9.35。 请注意,在列宽中输入数字并不重要。 - COST 以列 7 开始,以列 11 结束。 指定了
DOLLAR格式。 - READY 从第 12 列开始,到第 21 列结束。 指定了
ADATE格式。
示例
DATA LIST FILE="/data/data1.txt"
/MODEL (F1) RATE (PCT5.2) COST (DOLLAR5) READY (ADATE10).
- 在此示例中,将使用
FILE子命令,因为数据位于外部文件中。 - 变量定义与前一个示例中的变量定义相同,只是使用了类似 FORTRAN 的格式规范而不是列样式。 未指定列位置。 相反,格式规范包含每种格式类型的宽度。
- 每种格式的宽度 (
w) 部分必须指定最宽值中的字节总数。 COST 的DOLLAR5格式接受五位数值 78788 ,显示为 $78,788。 因此,指定的输入格式DOLLAR5生成输出格式DOLLAR7。 程序会自动扩展输出格式的宽度,以适应显示的输出中的美元符号和逗号。