隐式小数位数 (DATA LIST 命令)

  • 对于固定格式的数据,小数位可以在数据中编码,也可以由格式隐含。 如果隐含小数位但未在数据中输入小数位,那么程序会将每个值中最右边的数字解释为十进制数字。 值中的编码小数点将覆盖隐含的小数位数。 例如, (DOLLAR,2) 指定两个小数位。 值 123 解释为 1.23; 但是,值 12.3 解释为 12.3 ,因为编码的小数位数将覆盖隐含的小数位数。
  • 对于自由字段数据,不能隐含小数位,但必须在数据中进行编码。 如果在格式中指定了小数位,但数据值不包含小数点,那么程序将用零填充小数位。 例如,使用 F3.1 格式 (三列,小数点后一位) ,值 22 显示为 22.0。 如果数据中的值具有比格式中指定的小数位数更多的小数位数,那么在显示的输出中 (而不是在计算中) 会截断额外的小数位数。 例如,使用 F3.1 格式时,值 2.22 将显示为 2.2 ,即使在计算中该值仍为 2.22。

下表比较了如何对固定和自由字段格式的值进行解释。 表中的值用于四列数字变量。

表 1. 以固定和自由字段格式解释值
固定,缺省值 固定,两个定义的小数位 Freefield ,缺省值 Freefield ,两个定义的小数位
2001 2001 20.01 2001.00 2001.00
201 201 2.01 201.00 201.00
-201 -201 –2.01 –201.00 –201.00
2 2 .02 2.00 2.00
20 20 .20 20.00 20.00
2.2 2.2 2.2 2.20 2.20
.201 .201 .201 .201 .201
2 01 未定义 未定义 两个值 两个值

示例

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) 部分必须指定最宽值中的字节总数。 COSTDOLLAR5 格式接受五位数值 78788 ,显示为 $78,788。 因此,指定的输入格式 DOLLAR5 生成输出格式 DOLLAR7。 程序会自动扩展输出格式的宽度,以适应显示的输出中的美元符号和逗号。