JMP 允许用户指定自定义格式。这些自定义格式与 JMP 原生支持的格式一样,可在所有功能中使用,例如数据表、图表构建器、CSV 导入、数据筛选器、JSL 等。这些自定义格式既可用于输入日期和时间,也可用于输出日期和时间。
要格式化数据表中的一列数字并获得数值结果,您必须使用“列属性”对话框并通过 GUI 更改格式(见下图),或者使用 JSL 向该列发送<< Format ( )消息。
列属性

此表列出了各种字段描述符及其含义。

JSL 和公式编辑器
自定义日期是通过在知情或格式语句中使用“格式模式”参数来实现的。
请注意,“格式模式”是一个带引号的字符串:当您使用 GUI 构建格式时,JMP 会处理引号,但当您使用公式或 JSL 编写自定义格式时,必须包含引号。
以下示例展示了 JSL 的 Format() 命令如何使用内置(原生)格式。请注意,此命令的语法为Format( 数字 , 细绳 ),其中细绳是原生格式:
format(3683283977, "ddMonyyyy h:m:s");
以下自定义格式的输出与上述原生格式的输出完全相同。其语法为Format(数字, “格式模式”,细绳),其中细绳是字段描述符和其他(字面)文本(例如空格、冒号等)的集合。
format(3683283977, "格式模式", "
-
:
:
");
字段描述符用尖括号括起来。任何未用尖括号括起来的内容都被视为纯文本,从而可以实现高度可定制的输出:

关于使用 Informat() 和 Format() 的技巧:
Informat()函数用于将字符串转换为自 1904 年 1 月 1日以来的秒数。Informat() 可以通过以下 3 种方式实现此目的:
- 通过让 JMP 猜测日期格式。为此,只需将原始字符串作为参数即可。由于可能存在歧义,这种方法有时有效,有时无效:使用以下代码,无法判断下面的日期究竟代表 3 月 12 日还是 12 月 3 日。
- 通过使用用户可通过添加格式字符串参数指定的内置格式。这里,我们指定日期应表示为 3 月 12 日,而不是 12 月 3 日。
- 通过使用格式模式:
- 信息(“2/3/1995”,“格式模式”,“
/ / ”)
相反, `Format()`函数会将数字转换为字符串,因此如果在列公式中使用`Format()` ,结果将是字符串而不是数字。要格式化数据表中的数字列并获得数值结果,您必须使用“列属性”对话框并通过 GUI 更改格式(参见下图),或者使用 JSL 向该列发送`<< 格式化()`消息。例如: 打开 示例日期及转换.jmp 。此表包含许多格式模式的使用示例。 下表描述了每一列的内容:柱子专栏注释原始日期文本我们希望将其转换为连续日期的字符串(字符数据)。与 Informat 一起使用的格式模式执行此转换所需的格式模式。持续结果一个公式列,使用前两列作为输入,生成一个未格式化的日期(自 1904 年 1 月 1 日以来的秒数)。结果以标准格式显示日期以内置格式显示。(列连续)结果以格式模式显示日期以自定义格式显示。(该列为连续列)使用格式模式将结果转换为字符串这里我们使用列公式和 Format() 函数,将连续日期转换为自定义格式的字符串。(列类型为字符型)秒的分数如果结果包含小数秒,则回答“是”。图表构建器由于格式或必要细节的原因,图表构建器中日期的显示方式可能与数据表中的显示方式不同。要进行调整,请使用与列属性中相同的工具,这些工具位于相关坐标轴的属性中。由于格式或必要细节的原因,图表构建器中日期的显示方式可能与数据表中的显示方式不同。要进行调整,请使用与列属性中相同的工具。您可以通过双击相关坐标轴来访问坐标轴属性,从而找到这些工具。此外,日期分组有两种方式:分箱或包装。分箱是指将同一月份或同一时间段的所有元素按日期和时间顺序分组。例如,如果我按周分箱,则每个日历周的所有数据将被分组在一起。日期分组功能允许您根据日期特征将同一月份或同一时间段内的所有元素分组在一起。例如,如果我按周分组,数据将按日分组,例如星期一、星期二、星期三等等。这样我就可以查看日期是否对我的数据产生影响。