誤った入力日付形式によって値が欠落するのを防ぐコツは?日付列がデフォルトで文字に設定されているデータ セットをインポートする場合、数値および連続型に変更するのが一般的です。残念ながら、入力の日付形式が正しくない場合、解析できない値は欠落に設定されるため、入力形式を設定する 2 度目のチャンスはありません。通常、探索的/グラフィカル ユーザー インターフェイス分析では、これをどのように処理しますか?
私は時々
- 数値に変換する前に列を複製します
- 日付を解析する新しい数式列を作成する
この問題を実証するには、以下のスクリーンショットに示すように、このコードを実行して 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");
ここで、列情報にすべての値を一度に設定し、列を文字に戻した後でも、一部のデータが欠落に設定されていることに注意してください。

データ表Re: 誤った入力日付形式で値が欠落するのを防ぐコツは?JMP16の書式パターンを使用したカスタム日時書式設定日付のフォーマットにもかなり役立ちます。 以前は、データ テーブル ツール アドインまたは、独自の解析式を作成しますが、JMP16 で簡単に作成できることを願っています。
Re: 誤った入力日付形式で値が欠落するのを防ぐコツは?ありがとう@jthi 、
わかりました、新しい列で日付を解析するのは私だけではないことを嬉しく思います.解析日を新しい数式列オプションとして追加.
その「最善の」トリックは良いアイデアです。もう少し試してみる必要がありますが、少なくとも m/d/yvd/m/y 問題には役立ちます。
Re: 誤った入力日付形式で値が欠落するのを防ぐコツは?私は通常、日付を解析するためのカスタム数式を作成するだけです。
私の頭に浮かんだ1つのオプションは、最初にNumeric、Nominalに変更するとどうなるでしょうか一番フォーマットとして。 これにより、JMPが正しい形式を決定し、可能であれば数値にすることができると思います。 数値にした後、フォーマット設定に戻り、目的のフォーマットを選択できます。
Re: 誤った入力日付形式で値が欠落するのを防ぐコツは?ありがとうございました@peng_liu 、
はい、これは問題を完全に説明しています。場合によっては、上部の数行が正しく解析されているように見え、ユーザーが下にスクロールしてテーブルの下位の行が欠落していることを確認することを考えていないか、ほとんどの値が正しく解析されているが、データ入力の問題が原因でいくつかの値が正しく解析されていないことがあります。ユーザーが日付を解析するのに役立つ別の方法を見つけて、数時間または数日後に欠損値があることに気付く可能性を低くしたいと考えています。
Re: 誤った入力日付形式で値が欠落するのを防ぐコツは?結果として得られる Char から Num への欠損値は、入力形式が原因です。
欠落している結果は、この「02/13/2021 12:23:50 AM」で行 113 あたりから始まります。 「d/m/yh:m」の入力形式では、13 番目の月として解釈されますが、これは無効です。

変換に誤りがある場合、基になる値が変更されているため、フォーマットを元に戻しても問題は解決しません。 欠損値は、有効な時間値を保持しなくなります。 代わりに、[編集] の [元に戻す] を使用してください。