防止错误输入日期格式导致缺失值的技巧?导入具有默认为字符的日期列的数据集时,通常将其更改为数字和连续。不幸的是,如果输入日期格式不正确,任何无法解析的值都会被设置为缺失,因此您没有第二次机会设置输入格式。在探索性/图形用户界面分析中,您通常如何处理这个问题?
我有时候
- 在转换为数字之前复制列
- 创建一个新的公式列来解析日期
为了演示该问题,运行此代码以创建一个包含 m/d/y 格式的某些日期的表,然后将该列设置为使用 d/m/y 格式,如下面的屏幕截图所示。
names default to here(1);
//Make a table with dates in m/d/y format
vals = index(today()-in days(100), today(), incr=in hours(1));
dt = New Table( "Example Data for Input Date Format",
Add Rows( n items(vals) ),
New Column( "Dates mdy",
Numeric,
"Nominal",
Format( "m/d/y h:m:s", 23, 0 ),
Input Format( "m/d/y h:m" ),
Set Values( vals )
)
);
dt << run formulas;
wait(1);
dt:Dates mdy << data type("Character");
现在在列信息中一次设置所有值,并注意一些数据是如何设置为缺失的,即使在将列更改回字符之后也是如此。

数据表回复:防止错误输入日期格式导致缺失值的技巧?JMP16 的使用格式模式自定义日期时间格式对于日期格式也很有帮助。 以前我确实使用过数据表工具插件或编写我自己的解析公式,但希望 JMP16 会更容易。
回复:防止错误输入日期格式导致缺失值的技巧?谢谢@jthi ,
好的,我很高兴我不是唯一一个用新列解析日期的人,我只是提交了一个愿望清单项目,以使这更容易添加解析日期作为新公式列选项.
这个“最佳”技巧是个好主意,我需要多玩一点,但至少对于 m/d/yvd/m/y 问题它会有所帮助。
回复:防止错误输入日期格式导致缺失值的技巧?我通常只是创建自定义公式来解析日期。
我想到的一个选项,如果您首先将其更改为 Numeric,Nominal 与最好的作为格式。 我认为这会让 JMP 确定正确的格式并尽可能将其设为数字。 将其设为数字后,您可以返回格式设置并选择所需的格式。
回复:防止错误输入日期格式导致缺失值的技巧?谢谢@peng_liu ,
是的,这完美地描述了这个问题。有时,前几行似乎解析正确并且用户不认为向下滚动以查看表中较低的行设置为缺失,或者大多数值正确解析但由于数据输入问题而没有正确解析。我希望找到一种不同的方法来帮助用户解析日期,这样他们就不太可能在数小时或数天后发现他们缺少值。
回复:防止错误输入日期格式导致缺失值的技巧?从 Char 到 Num 的结果缺失值是由于输入格式造成的。
缺失的结果从第 113 行开始,此为“02/13/2021 12:23:50 AM”。 "d/m/yh:m" 输入格式解释为第13个月,无效。

当转换出现错误时,改回格式并不会减少它,因为基础值已更改。 缺失值不再包含有效的时间值。 改用“编辑”下的“撤消”。