文字列を日付列に変更する<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな、
「dmy」形式の日付を持つ文字型の列を持つテーブルがあるとします。 例:
| キャラクターの日付 |
|---|
| 2015.08.05 |
| 2016.03.17 |
| 2016.05.12 |
次に、文字の日付を数値の日付に変換したいと思います。 これはよくある問題であり、読むべきことがたくさんあることは承知しています。 ただし、私が得られないのは次のとおりです。
列を右クリックして列情報に移動し、データ型を数値に変更して、形式として「dmy」を選択すると、すべて問題ありません。 すべての日付が正しく変換されます。 しかし、次のスクリプトを実行すると:
Column("文字日付") << データ型(数値) << Informat("dmy") << Format("dmy");
または
Column("文字日付") << データ型(数値) << Format("dmy");
1 行目と 3 行目のみが正しく変換されます。 この例の列の 2 行目は、その後 null になります。これは、おそらく形式が「mdy」と誤って解釈されたためと考えられます。
これらのアプローチ (スクリプト/マニュアル) が異なる結果をもたらす可能性はどのようにあるのでしょうか? そして、スクリプトアプローチを機能させるにはどうすればよいでしょうか?
ありがとう!
Re: 文字列を日付列に変更するJMP は、informat で常に mdy フォーマットを使用するとは限りません。
最初の行の最初の日付が mdy に適合する場合は、残りの行に何が含まれているかに関係なく、mdy 形式が使用されます。
最初の行が dmy 形式にのみ適合する場合は、その形式が代わりに使用されます。 したがって、テストするときは、インポートされた行が mdy 形式に適合するまでは、すべてがうまくいくように見えるかもしれません... 米国では、すべての日付が mdy であるため、これはもちろん問題ありません。
これは JMP 15.1.0 でも依然として当てはまります。.csv および Excel のインポートはいくらか改善されましたが、JMP でインポートされた日付を操作するのはまだ面倒なので、いつか修正されることを願っています。
Re: 文字列を日付列に変更するMSさん、ありがとうございます。 「Locale Date」がその役割を果たしました。 ただし、For Each ループはまだ存在します。 しかし、私は別の解決策を見つけるためにお金を払うつもりです。
その一方で、数値日付を MS SQL データベースから JMP に転送したい場合は、適切な ODBC ドライバーをインストールすることが重要であることがわかりました。 「SQL Server」ドライバーでは数値の日付をインポートできませんでしたが、「ODBC Driver 11 for SQL Server」ではそれが可能でした。
Re: 文字列を日付列に変更するとってもとっても素敵
Re: 文字列を日付列に変更する試してみてはいかがでしょうかロケールの日付フォーマット。
Column("文字の日付") << データ型(数値) << Format("ロケールの日付");
Re: 文字列を日付列に変更するネルソンさん、ご回答ありがとうございます。 スクリプトを実行すると、「文字の日付」列にタイムスタンプが取得されました。 ただし、なぜ JMP が Format コマンドを無視するのかはわかりません。 私のシステム: ドイツの Windows 7 上の JMP 12.2.0 (UTC+1; dmy)。
現在、日付を持つすべての文字列を数値日付に自動的に変換するスクリプトの For Each Row を回避しようとしています。 そのような解決策はありますが、非常に遅いです。 したがって、上記の私の質問です。
Re: 文字列を日付列に変更するどうやら、変換を正しく実行する際に JSL に問題があるようです。常に「m/d/y」を情報形式として使用しているようです。以下のスクリプトが変換を行います
デフォルトの名前はここにあります( 1 ) ;
試す(近い(データ表( "テスト" ) 、保存しない)) ;
dt =新しいテーブル( "テスト" 、
行の追加( 3 ) 、
新しい列( 「キャラクターデート」 、
キャラクター、
「公称」 、
値を設定( { 「2015.08.05」 、 「2016.03.17」 、 「2016年5月12日」 })
)
) ;
各行について(
:キャラクターの日付=サブ文字列( :キャラクターの日付、 4 、 2 ) || 「。」 ||
サブ文字列( :キャラクターの日付、 1 、 2 ) || 「。」 ||サブ文字列( :キャラクターの日付、 7 )
) ;
カラム( 「キャラクターデート」 ) <<データ・タイプ(数値) <<フォーマット( 「d/m/y」 ) ;