Table\JoinとTable\Updateを使用して2つのテーブルをマッチングしようとしましたが、成功しませんでした。表A、B、Cを添付します。
表Aにはピーターによる30件のエントリーがある。
表Bには、ジェーンによる8,790件のエントリが含まれています。
表Cは、手動で作成された正しい結合表です。
ピーターとジェーンのエントリを照合し、テーブルAの「場所」のみを含むサブセット、つまりテーブルCを作成したい。
Table\JoinとTable\Updateを使用してみましたが、結果が正確ではありませんでした。
例えば、Location=-216,161 を使用した場合、結合されたテーブルの出力は以下のようになります。
場所:ピーター・ジェーン
-216,161 RDL_メンブレン RDL_メンブレン
-216,161 RDL_膜 。
-216,161 破片 破片
自動化とスクリプト作成Re: Table\JoinとTable\Updateを使用して2つのテーブルをマッチングしようとしたが成功しなかった結合/更新は正しく機能しており、一致する値が複数存在します。おそらく、それらの「余分な」値を削除するために、何らかの値削除処理を追加する必要があるでしょう。

Re: Table\JoinとTable\Updateを使用して2つのテーブルをマッチングしようとしたがうまくいかなかったこんにちは、Jarmoさん。
出力が正しくありません。Location= -216,161 の場合、Peter の出力は 3 つ、Jane の出力は 2 つです。結果は以下のようになるはずです。これを自動化する JSL はどのように記述しますか。
場所:ピーター・ジェーン
-216,161 RDL_メンブレン RDL_メンブレン
-216,161 RDL_膜 。
-216,161 破片 破片
Re: Table\JoinとTable\Updateを使用して2つのテーブルをマッチングしようとしたがうまくいかなかったその出力は結合/更新としては正しいですが、あなたが求めているものではないかもしれません。
1. テーブルBにJaneの列を複製する
2. その新しい列(私の場合は列3)を更新対象の一致列として使用します。

3. 「場所」列と「Jane」列を選択し、「行」>「行の選択」>「重複の削除」を選択します。
4. Jane列のみを選択し(列ヘッダーをクリックします(場合によってはAltキーを押しながらクリックする必要があります))、該当する値を削除します(Deleteキーを押します)。


Re: Table\JoinとTable\Updateを使用して2つのテーブルをマッチングしようとしたがうまくいかなかった上記の処理をJSLで行いたいと考えています。また、データセットは変更される可能性があり、Janeの列が重複する場合もありますが、それは問題ありません。
Re: Table\JoinとTable\Updateを使用して2つのテーブルをマッチングしようとしたがうまくいかなかったおそらくワークフローとして実行してみるでしょう。もちろん、そのようなスクリプトを書けるのであれば、JSLを直接使用することも可能です。
Re: Table\JoinとTable\Updateを使用して2つのテーブルをマッチングしようとしたがうまくいかなかったまずデータのフォーマットを変更することを検討してみてはいかがでしょうか?私の経験では、複雑なスクリプトを使って分析をデータフォーマットに合わせるよりも、データを分析しやすい形式に再フォーマットする方が簡単な場合が多いです。特定の場所に対応する複数の行(縦長フォーマット)は多くの場合有効ですが、重複した観測値(つまり、完全に同一の複数の行)がある場合は扱いが難しくなります。JMPはこのような重複をどのように処理すべきかを常に認識しているとは限らないため、結合時に期待どおりの結果が得られない場合があります。
例えば、フォーマットを縦長から横長に変更することを検討していただけますか?これは、例えば半導体検査/テストデータにおいて、複数のエラーカテゴリや歩留まりランクが存在する場合によく見られることです。
もっと見る...
Local( {obj},
obj = Data Table( "Table A" ) << Tabulate(
Add Table(
Column Table(
Grouping Columns( :Peter ),
Add Aggregate Statistics( :Peter )
),
Row Table( Grouping Columns( :Location ) )
)
);
obj << Make Into Data Table;
obj << Close Window;
);
結果として、以下のような表が得られます。

両方の演算子について、この形式で表を組み合わせる方がはるかに簡単でしょう。
もう一つの選択肢として、多重応答モデリングタイプを検討することもできます。例えば:
もっと見る...
dt=Data Table( "Table A" ) << Split(
Split By( :Peter ),
Split( :Peter ),
Group( :Location ),
Output Table( "Split of Table A by Peter" ),
Sort by Column Property
);
// New formula column: Concatenate[BL_Twin,Debris,Good_FS,Probemarks,RDL_Membrane,RDL_SpotsDark]
dt <<
New Formula Column(
Operation( Category( "Character" ), "Concatenate with Comma" ),
Columns(
:BL_Twin, :Debris, :Good_FS, :Probemarks, :RDL_Membrane, :RDL_SpotsDark
)
) << Run Formulas;
dt:"Concatenate[BL_Twin,Debris,Good_FS,Probemarks,RDL_Membrane,RDL_SpotsDark]"n <<
Set Modeling Type( "Multiple Response" );
見た目はこんな感じです。
