文字列から日付を抽出する式<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、私は SAS EG と JMP を使用しています。 以前は Base SAS for PC を使用していました。 単純に見えるタスクが JMP に単純な解決策がないことに苛立ちを感じています。 たとえば、文字データを含む列を含む添付の jmp テーブルを参照してください。 日付を数値変数として列を作成する必要があります。 SAS では、次のように記述します。
date=input(substr("列 1",1,10),ddmmyy10.);
しかし、このための新しい列の式はどうあるべきですか。
そんな簡単な質問をしなければならないのは残念ですが、. . .
前もって感謝します
ポール・レイヴン・ソレンセン
Re: 文字列から日付を抽出する式PMroz の例は、私の PC でも動作しませんでした (JMP 9.0.3、Win XP)。 ただし、MS による date4 式は機能します。 Jeff Perkinson による、テーブル自体でそれを行うという提案は、スクリプトで行うという考えに反するものです。 私は、テーブルを作成するたびにその方法を覚える必要がないように、このようなことを行う数式の「ツールボックス」を用意することを好みます。
皆さんありがとう
ポール
Re: 文字列から日付を抽出する式結局のところ、Informat() の 2 番目の引数はオプションです。 これがないと、JMP は最初の引数を調べて、独自にフォーマットを見つけようとします。
この例では、JMP は日付の区切り記号としてドットを含む日付を認識しました。
t = "12.10.2012 10:22:31" ;
日付1 =情報を入力( t ) ;
見せる(日付1 ) ;
/*:
date1 = 10Dec2012:10:22:31;
元の質問に戻ると、値を自動的に JMP Datetime 値に変換するために、Format と Input Format を使用して、列のデータ型を Character から Numeric に変更します。

次に、datetime 値の日付部分だけが必要な場合は、時刻を差し引くことができます。
:列 1 - 時刻( :列 1 )
-ジェフ
Re: 文字列から日付を抽出する式JMP が認識する日付または日付/時刻の形式は、(JMP または OS の) ローカライズによって異なるようです。 たとえば、PMros の例のように「/」と「:」を含む形式は、私のコンピューター (英語の JMP10、スウェーデン語の Mac OS X) では機能しません。
以下の例は、いくつかの注意事項を示しています。 最初のものは認識されませんが、ハイフンとドットを含む 2 番目のものは期待どおりに機能します (ただし、ここでは「二重置換」が必要です)。
3 番目と 4 番目の例は、潜在的な日付のあいまいさを示しています。形式の引数がない場合、JMP は m/d/y を想定しますが、これはデータ ソースによって正しくない場合があります。
この日付形式の混乱に対処するためのスクリプト作成のベスト プラクティスは何ですか?
t = "12.10.2012 10:22:31" ;
日付1 =情報を入力(代わりの( t 、 「。」 、 "/" ) 、 「d/m/yh:m:s」 ) ;
日付2 =情報を入力(代わりの(代わりの( t 、 「。」 、 「-」 ) 、 ":" 、 「。」 ) 、 「dmy hms」 ) ;
日付3 =情報を入力(サブストリング(代わりの( t 、 「。」 、 「-」 ) 、 1 、 10 ) 、 ) ;
日付4 =情報を入力(サブストリング(代わりの( t 、 「。」 、 「-」 ) 、 1 、 10 ) 、 「dmy」 ) ;
見せる(日付1 、日付2 、日付3 、日付4 ) ;
/*:
日付1 = .;
date2 = 12Oct2012:10:22:31;
date3 = 2012 年 12 月 10 日;
date4 = 2012 年 10 月 12 日;
Re: 文字列から日付を抽出する式数式列で informat 関数を使用します。秘訣は、" . " 文字から " / "。
dt =新しいテーブル( 「文字列データとしての日付」 、
行を追加( 10 ) 、
新しい列( 「コラム1」 、
キャラクター、
公称、
設定値(
{ "19.10.2012 14:26:49" 、 "15.10.2012 9:28:57" 、 "15.10.2012 9:22:13" 、
"09.10.2012 11:15:18" 、 "09.10.2012 11:07:14" 、 "28.09.2012 15:30:41" 、
"28.09.2012 13:00:18" 、 "27.09.2012 15:43:07" 、 "27.09.2012 15:42:16" 、
"27.09.2012 15:41:12" }
)
)
) ;
dt <<新しい列( 「コラム2」 、
数値、
連続、
フォーマット( 「d/m/yh:m:s」 、 22 、 0 ) 、
入力フォーマット( 「d/m/yh:m:s」 、 0 ) 、
方式(
情報を入力(代わりの( :列 1 、 「。」 、 "/" ) 、 「d/m/yh:m:s」 ) ;
) 、
) ;