数値列を日付列に正しく変換するにはどうすればよいですか?やあ、
「yyyymmdd」形式の日付列があります。 日付の例は、20000111 のようになります。 CSV から JMP にデータをインポートすると、この列は連続数値として扱われます。 その形式を date-yyyymmdd に設定したところ、1904/1/1 から 20000111 秒として扱われることがわかりました。 列を文字、公称に変更し、informat() を使用して変換しようとしましたが、動作させることができません。 スクリプトは次のようになります。 Informat( :New_Date, "yyyymmdd" ) New_Date は列の名前です。 結局空白の列になってしまいました。 Char(New_Date) を使用して New_Date を文字列に変換しようとしました。 ドットが返されます。 なぜこのような単純なタスクを完了できないのか理解できません。 ところで、私はJSLを知らず、数式ツールを使用しました
ありがとう!
自動化とスクリプト作成データアクセスRe: 数値列を日付列に正しく変換するにはどうすればよいですか?これは変換方法を示す例です
- 文字の日付値を含むデータテーブルを開きます
- 新しい列を作成し、「日付」という名前を付けます。
- Col Info ダイアログを開き、形式を「m/d/y」に設定します。

- 新しい列の数式エディタを開いて次のように入力します。
Date MDY(
Num( Substr( :New Date, 6, 2 ) ),
Num( Substr( :New Date, 9, 2 ) ),
Num( Substr( :New Date, 1, 4 ) )
)
「新しい日付」を日付の文字バージョンが含まれる列の名前に変更します。
- 新しい列には、日付の新しい数値バージョンが表示されます。

Re: 数値列を日付列に正しく変換するにはどうすればよいですか?ダン、文字を数値に変更してから日付形式を適用するというトリックは、本当に心強いです。残念ながら、「適用」と「OK」を押すと、日付列が文字に戻ってしまいました。列は左揃えのテキスト フィールドのままです: 2021-08-24。
他の日付付きファイルとマージできるように、JMP 日付番号を取得したいと考えています。
考えられる問題の 1 つは、データが「left(longdate,10)」として時間値を取り除いたものとして取得されたということです。 それは私の変容を妨げるのでしょうか?
Re: 数値列を日付列に正しく変換するにはどうすればよいですか?これは、列の値 (この場合は 1 行のみが設定されます) が数値であり、指定した構造になっている例です。

これを適切な JMP 日付/時刻列に変更するには、次のようにします。
まず、問題の列の「列情報」ダイアログを開きます。

JMP が 20001101 を日付/時刻値に変換する Informat を使用してこれを認識できるようにするには、入力列が文字である必要があるため、データ タイプを文字に変更して [適用] をクリックします。

次に、[列情報を開く] ダイアログ ボックスに戻り、データ型を数値に変更し、形式のリストから形式「yyyymmdd」を選択します。 もう一度「適用」をクリックします

上の画像では、表示された値が同じままであることに注意してください。これは表示形式が「yyyymmdd」であるためです。また、列が数値に戻っていることにも注目してください。
それが真の JMP 日付/時刻列であることを検証するには、表示形式を別の日付形式に変更します。そこで、[列情報] ダイアログ ボックスに戻り、別の日付形式を選択します。この例では、「m/d/y」形式が選択されています。次に「適用」をクリックします

見てわかるように、正しい日付は 01/11/2000 として表示されます。
[OK] をクリックするだけで、列が希望どおりに変換されます。
Re: 数値列を日付列に正しく変換するにはどうすればよいですか?「新しい日付」列を文字列にしているため、次の数式を使用すると機能するはずです。

日は常に 2 文字 (最初は 01 になります)、月は常に 2 文字、年は常に 4 文字であると想定しています。