識別子によって日付間の 2 つのデータ セットを結合します。皆さんこんにちは、初心者の皆さん、
非常に少ない一意の識別子を持つ、2 つの異なるソースからの 2 つの異なるテーブル/データ セットを組み合わせて一致させようとしています...
プロセス例:ウィジェットが処理され(この場合は2種類の試薬を使用)、出力テーブル(下図、イベントごとに1行)には「操作開始日時」と「操作完了日時」が含まれます。ウィジェットの一意の識別子は「SFC」と「Shop Order」です。
出力表1

「操作開始日時」と「操作完了日時」の間にプロセス データが送信されます (以下、イベントごとに 24 行)...
出力表2

提出データ(出力表2)とイベントデータ(出力表1)(基本的には各イベントの結果)を一致させようとしています。各「SFC」(ウィジェット)は「Shop Order」に接続されていますが、複数のイベントデータセット(例:SN12345 == Shop Order 98765)を持ち、「DATE」提出データ(出力表2)が複数存在する可能性があります。ただし、各「DATE」提出データには、提出ごとに固有の「GROUP_ID」が付与されます。
主な目標は、出力テーブル 2 の「名前」と「値」を出力テーブル 1 の「試薬タイプ」と一致させ、試薬の比較を視覚化できるようにすることです。
十分に説明できたと思います(非常に分かりやすく)。また、このサイトはこのように動作すると思います。
前もって感謝します!
データのブレンドとクリーンアップ結果の共有と伝達Re: 識別子による日付間の 2 つのデータ セットの結合。本当に素晴らしいコミュニティですね!ありがとうございます!
Re: 識別子による日付間の 2 つのデータ セットの結合。これがまさにご希望の通りかどうかわかりません。サンプルデータでは、開始時間と完了時間に基づいた正確なマッチングができません。より詳細なデータで以下のコードを実行してください。また、ご提供いただいた2つのサンプルデータテーブルも添付しました。
Names Default To Here( 1 );
dt1 = Data Table( "Output 1" );
dt2 = Data Table( "Output 2" );
// Loop through the Output 1 data table and set a unique id,
// and assign the same unique id to the Output 2 data rows
// that fall within the start and completion times
dt1 << New Column( "The Row", formula( Row() ) );
// Turn values to static
dt1:The Row << delete formula;
// Add a new column to the Output 2 data table that will be
// filled in below
dt2 << New Column( "The Row" );
For( i = 2, i <= N Rows( dt1 ), i++,
foundRows = dt2 << get rows where(
dt2:SFC == dt1:SFC[i] & dt2:SHOP_ORDER == dt1:Shop Order[i] & dt1:Operation Start Date Time[i] <= dt2
:DATETIME & dt1:Operation Completion Date Time[i] >= dt2:DATETIME
);
If( N Rows( foundRows ) > 0,
dt2:The Row[foundRows] = dt1:The Row[i];
)
);
// Join the data
dt3 = dt1 << Join(
With( dt2 ),
By Matching Columns(
:SFC = :SFC,
:Shop Order = :SHOP_ORDER,
:The Row = :The Row
),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 0 ),
Preserve main table order( 1 )
);
// Cleanup the data tables
// uncomment the 2 lines below to automate the cleanup
// dt1 << delete columns(:The Row );
// dt2 << delete columns(:The Row );
Re: 識別子による日付間の 2 つのデータ セットの結合。テスト用のサンプルデータセットを提供していただけますか?必要であれば、JMPのテーブルメニューにある匿名化機能を使用してデータを匿名化できます。時間とSFCはマッチングに必要なので、それ以外のすべてを匿名化できると思います。