数値の「文字列」を日付に変換するにはどうすればよいですか?私は新しいユーザーで、数値文字列を jmp 日付形式に変換しようとしています。
文字列を連結して新しい列を作成して、少なくとも希望の「ddmmyyy」出力を取得できるようにしてみました。
(Substr( :START_DATE, 7, 2 ) || Substr( :START_DATE, 5, 2 )) ||Substr( :START_DATE, 1, 4 ) しかし、それ以上はわかりませんでした。
これについて何かアイデアはありますか?

Re: 数値文字列を日付に変換するにはどうすればよいですか?いいえ、申し訳ありませんが、現在は機能しています
助けてくれてありがとう
Re: 数値文字列を日付に変換するにはどうすればよいですか?実際、テストファイルで実行すると、すべての行でデータが欠落します。 JMP 12 を使用していますが、それが原因でしょうか?Re: 数値文字列を日付に変換するにはどうすればよいですか?ありがとう - 助かりますRe: 数値文字列を日付に変換するにはどうすればよいですか?Jim のスクリプトと列の式の使用方法にはいくつかの違いがあります。
- 列式は、古いデータに基づいて新しい列を作成します。 新しい行が追加されると、数式が自動的に実行され、日付値が変換されます。 最初に数式を削除しない限り、古いデータ列は削除できません。
- スクリプトはスクリプト エディタから 1 回実行されます。 Jim のスクリプトは列をその場で変換し、数値を元の表現から JMP 日時表現に変更します。 スクリプトの実行後にさらにデータが追加される場合は、列が予期する JMP 日時形式を使用して追加する必要があります。
あなたが答えたいと思うかもしれない質問は、「JMP が好まない日付をどうやって入手したのか、そしてより良いアプローチは何なのか?」ということだと思います。
このデータを CSV ファイルから JMP にインポートしたとき、または新しいテーブルにデータを入力したときに、JMP は数値を認識して数値列を作成しました。 JMP に日付ではなく 20180315 を表示させるには20,180,315 データを yyyymmdd 形式として解釈するように JMP に指示する必要があります。 これは、データ テーブルの列プロパティを使用して実行し、入力形式と形式の両方を指定できます。
informat yyyymmdd format monddyyyyinformat yyyymmdd format monddyyyy情報形式 yyyymmdd 形式 monddyyyy
Input Format available after choosing FormatInput Format available after choosing Formatフォーマットを選択した後に使用できる入力フォーマット
テキスト ファイルのインポートを使用して CSV ファイルからデータを取得している場合は、プレビュー ウィザードの 2 ページ目で列の上にある赤い三角形を使用して列の形式を指定することもできます。
Text import preview wizard second pageText import preview wizard second pageテキストインポートプレビューウィザードの 2 ページ目
最後に、JMP の日時値は、1904 年 1 月 1 日からの秒数として表されます。 https://www.jmp.com/support/help/14/date-time-functions.shtmlにはさらに多くの情報があります。意味のない巨大な数値が表示される場合は、おそらくフォーマットが必要です。 内部表現は変わらないため、出力形式を変更して 03 または Mar を表示することができます。
Re: 数値文字列を日付に変換するにはどうすればよいですか?1. 提供されたサンプル データ テーブルを考慮すると、投稿したスクリプトは正常に動作します。 添付ファイルを参照
2. 12 はフォーマット表示の幅です。見る:
ヘルプ==>スクリプトインデックス==>データテーブル==>列スクリプト
説明と例については
Re: 数値文字列を日付に変換するにはどうすればよいですか?この郵便受け(\d\d) の部分についてです。 括弧はグループを作成し、\d は 1 つの数字に一致します。
この郵便受け\1-\2-\3 くらいです。これらは、後方参照と結果文字列に挿入される余分なテキスト (ハイフン) です。 数字は、対応する開き括弧を参照します。
Regex は強力なツールであり、インターネット上に多くのチュートリアルがあります。
この例は、当面の問題に対して過剰です。 JMP には、数値を文字に変換した後の数値の形式とすでに一致する日付情報形式があります。
Re: 数値文字列を日付に変換するにはどうすればよいですか?共有してくれてありがとう。 これについてはよく理解していますが、最初の行でのみ機能します。 その後は「欠損値」を返すだけです。
また、「12」は何をするのでしょうか?
dt :開始日< <フォーマット( 「ディミィィィ」 、 12 ) ;
?
Re: 数値文字列を日付に変換するにはどうすればよいですか?ありがとう - これはうまくいきます。 ただし、完全に理解しているかどうかはわかりません。
それは"(\d\d\d\d)(\d\d)(\d\d)" は入力形式を示していますか?
「\1-\2-\3」は何をしているのでしょうか?
手伝ってくれてありがとう
Re: 数値文字列を日付に変換するにはどうすればよいですか?ジム - 始め方が間違っていたよ。 yyyymmdd 形式は、正規表現や部分文字列を使用しなくても機能します。
Informat( Char( :START_DATE ), "yyyymmdd" )
Re: 数値文字列を日付に変換するにはどうすればよいですか?これは、Craig が行ったのと同じことを行う簡単なスクリプトです。
Names Default To Here( 1 );
dt = Current Data Table();
For Each Row(
:start_date = Date MDY(
Num( Substr( Char( :start_date ), 5, 2 ) ),
Num( Right( Char( :start_date ), 2 ) ),
Num( Left( Char( :start_date ), 4 ) )
)
);
dt:start_date << format("ddmmyyyy",12);Re: 数値文字列を日付に変換するにはどうすればよいですか?あなたは本当に近くにいます。数値から文字列を取得するには、char(start_date) が必要です。 列の数式に対して少し異なるアプローチを試してみました
Informat( Regex( Char( :START_DATE ), "(\d\d\d\d)(\d\d)(\d\d)", "\1-\2-\3" ), "ymd" )
列の形式を設定します
Output format different from input formatOutput format different from input format出力形式が入力形式と異なる
JMP で推奨される日付の内部表現は、さまざまな形式でフォーマットできる数値である JMP 日時値です。