防止錯誤輸入日期格式導致缺失值的技巧?導入具有默認為字符的日期列的數據集時,通常將其更改為數字和連續。不幸的是,如果輸入日期格式不正確,任何無法解析的值都會被設置為缺失,因此您沒有第二次機會設置輸入格式。在探索性/圖形用戶界面分析中,您通常如何處理這個問題?
我有時候
- 在轉換為數字之前複製列
- 創建一個新的公式列來解析日期
為了演示該問題,運行此代碼以創建一個包含 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個月,無效。

當轉換出現錯誤時,改回格式並不會減少它,因為基礎值已更改。 缺失值不再包含有效的時間值。 改用“編輯”下的“撤消”。