時刻区切り文字の問題データをインポートする際の時刻形式でいくつかの問題が発生しています。
私たちの研究室には、時刻形式に関するさまざまな設定を備えた Win7 または Win10 を搭載したコンピューターのプールがあります。 これにより、タイムスタンプ付きのデータを JMP12 および 14 にインポートしようとすると問題が発生するようです。 タイムスタンプの形式は yyyy-mm-dd hh:mm:ss (例 2018-08-24 13:39:27) で、テストするコンピューターに応じて、インポートは成功するか失敗します。これは、時間形式で使用する必要があるためです。コロンまたはドットのいずれか。すべてのマシンで動作するインポート スクリプトを作成するにはどうすればよいでしょうか?
また、なぜ Windows の設定にもかかわらず同じままとなる固定時刻形式が JMP に存在しないのかも疑問に思っています。 結局のところ、区切り文字としてコロンを定義する ISO 8601 標準があります。
Re: 時刻区切り文字の問題XanGregg が提案した設定がまさに私たちが探していた設定であることがわかりました。 この会話を後で誰かが見つけた場合に備えて、以下のスクリプトでもこの設定を変更できるようです。
Set preferences( Use JMP Locale Settings( 1 ) );
また、markbailey が提案したように、正規表現を使用して入力を少し調整することになったので、このヒントにも非常に感謝しています。
Re: 時刻区切り文字の問題RegEx による回避策を教えていただき、ありがとうございました。 簡単なテストで、前進するのに役立つようです。 また、別のコンピュータにアクセスできるようになったら、「Windows 固有」設定でいくつかのテストを行う予定です。 それが私たちにとって普遍的な解決策となることを願っています。
たくさんのご協力ありがとうございました!
Re: 時刻区切り文字の問題Win10 の時刻区切り文字を「.」に変更したとき以下のスクリプトを実行したところ、問題なく動作したように見えたので、詳細が不足しています。

とにかく、あなたの場合に役立つかもしれないことがいくつかあります。
- 「Windows 固有」の下に、システム ロケール設定を尊重するかどうかを指定するための JMP グローバル設定があります。
- 列をテキストとしてインポートし、後で解析する場合、Parse Date() 関数には、オフにできる Use Locale 引数があります。
s = "time,
2018-08-24 13:39:27
2018-08-25 14:11:22
2018-08-26 16:33:44";
path = "$TEMP/times.csv";
Save Text File( path, s );
Open(path);
Re: 時刻区切り文字の問題混乱させて申し訳ありません。
いいえ、引数には設定された形式が定義されており、正規表現が含まれていない可能性があるため、この方法は機能しません。 別のアイデアについては、私の前回の投稿を参照してください。
Re: 時刻区切り文字の問題タイムスタンプを文字列として Date Time というデータ列にインポートすると仮定すると、この式を含む新しい数値データ列は、(説明した 2 つの形式のうち) 使用された形式に関係なく、適切な日付になるはずです。
Parse Date(
Regex( :Date Time,
"(\d{4}-\d{2}-\d{2} \d{2})[:\.](\d{2})[:\.](\d{2})",
"\1:\2:\3"
)
);Re: 時刻区切り文字の問題同じことについて話しているのか、それとも馴染みのない正規表現を使用する方法があるのか、疑問に思います。 私たちの問題をもっとわかりやすく説明してみます。
データの形式は一貫しています (hh:mm:ss)。 そこにセパレーターがありますいつもコロン。 たとえば、私のコンピュータ上の JMP はこの形式で適切に動作し、入力形式メニューからこの形式を選択するだけでこのデータを簡単にインポートできます。 私の同僚が同じことをしようとすると、彼女のコンピュータ上の JMP はデータを時間として認識しません。 彼女のコンピュータでは、時刻形式は hh.mm.ss (区切り文字としてドット) でなければなりません。 したがって、これらの両方のコンピュータで動作するインポート用のスクリプトを作成するには、まず、その特定のコンピュータ上で JMP が期待する時刻形式を特定する必要があります。
スクリプトで正規表現を使用して入力形式を決定できますか? 現時点では、マシンごとに異なるスクリプト (コロンを含むものとドットを含むもの) を用意する必要があります。
Format( "y.m.d h:m:s", 22, 0 ), Informat( "y-m-d h:m:s", 0 )<BR />
Format( "y.m.d h.m.s", 22, 0 ), Informat( "y-m-d h.m.s", 0 )<BR />
代わりにこれを使用できますか?
</CODE><CODE class=" language-jsl">Format( "y.m.d h<SPAN>[\.:]</SPAN>m<SPAN>[\.:]</SPAN>s", 22, 0 ), Informat( "y-m-d h<SPAN>[\.:]</SPAN>m<SPAN>[\.:]</SPAN>s", 0 )
Re: 時刻区切り文字の問題そこで正規表現を提案しました。 区切り文字の存在を示す式の一部として、「[\.:]」または「\.|:」を使用できます。 どの形式が使用されるかを事前に決定する必要はありません。
Re: 時刻区切り文字の問題ご提案ありがとうございます! 私たちは区切り文字を変更しようとしましたが、それは非常に簡単に行うことができますが、問題のマシンに応じて、区切り文字がドットまたはコロンのいずれかになる可能性があるため、JMP がどの区切り文字を予期しているかを検出する方法が見つかりませんでした。 。
Re: 時刻区切り文字の問題正規表現を使用して、文字関数とともにいずれかの書式設定オプションの部分を照合し、一貫した JMP 日付/時刻値を生成できます。