テーブルの結合jslを使用して2つのテーブルを結合する必要があります。 最初のテーブルは次のようになります。
ただし、2 番目のテーブルは次のいずれかになります。

この表では、Pred Form Molecule 1 (%)(2) は Molecule 1(%) と同じであり、値の列の数字が繰り返されています。 これらの値の 1 つだけを考慮するように結合を指定するにはどうすればよいですか?
結合する 2 番目のテーブルは次のようになります。

この場合、最初のテーブルの Molecule 1 (%) が、結合する必要があるテーブルの Pred Form Molecule1 (%)(2) と同じであることを結合で指定するにはどうすればよいですか。
必要な最終テーブルは次のようになります。
助けていただきありがとうございます。
Re: テーブルの結合@pmroz 、
明確にしていただきありがとうございます。 私の悪い点は、私が見逃していたこれにアプローチするためのより良い方法があるのではないかと考えていたことです。
@pmroz書きました:
変更するために再コードを提案していました価値観列内で、列の名前を変更しないでください。再コード化オプションを使用するには、再コード化する列を強調表示し、列 > ユーティリティ > 再コード(v12) または列 > 再コード化(v13)。
Re: テーブルの結合変更するために再コードを提案していました価値観列内で、列の名前を変更しないでください。再コード化オプションを使用するには、再コード化する列を強調表示し、列 > ユーティリティ > 再コード化(v12) または列 > 再コード化(v13)。
Re: テーブルの結合@txnelson & @pmroz 、
もしよろしければ、1 つ質問したいのですが、テーブル構造を考慮して列名を再コーディング/名前変更することをお勧めするのはなぜですか?共有テーブルの現在の構造は、データが行にあることを示しています。 理解していますが、いつでもデータを転置して列の名前を変更できることは理解していますが、それがあなたが推奨しているアプローチなのかどうか疑問に思っていますか? ご意見をお聞かせください
Re: テーブルの結合検索(検索)ダイアログを使用して、列名または列名の一部を変更できます。

Re: テーブルの結合@aam_jmp 、
テーブルの try と join を使用してこのコードをテストしました。 必要に応じて、これを適切に拡張して try1 を含めることができます。
Clear Log(); Clear Globals();
// Open Data Tables
dt1 = Open(FilePath1); // Where FilePath1 points to your file location for JOIN table
dt2 = Open(FilePath2); // Where FilePath2 points to your file location for try table
// Get Y values from main table
YVals = dt1:Y << Get Values;
// Get Col values from second table
ColVals = dt2:Col << Get Values;
// Loop through the values
for(i = 1, i <= N Items(YVals), i++,
for(r = 1, r <= N Items(ColVals), r++,
If(Contains(ColVals[r],YVals[i]),
ColVals[r] = YVals[i];
);
);
);
// Assign Corrected Values back to dt2
dt2 << New Column("CorrectedCol",Character,Continuous, << Set Values(ColVals));
// Join Tables
dt_Intermediate = dt1 << Join(With(dt2 ),
Select( :Y, :Quan Reqd ),
SelectWith( :Value ),
By Matching Columns( :Y = :CorrectedCol ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
);
// Remove Duplicates
dt_Results = dt_Intermediate << Summary(
Group( :Y, :Quan Reqd, :Value ),
Freq( "None" ),
Weight( "None" )
);
Re: テーブルの結合こんにちは、Uday さん、テーブルを追加しました。
Re: テーブルの結合@aam_jmp 、
以下のサンプルコードを参照してください。 これは、JMP のどのデータ テーブルでも機能するはずです。 そうでない場合は、データ テーブルのサンプルを共有していただくようお願いします。問題が何であるかを確認してみます。
Clear Log(); Clear Globals();
// Open Sample Data
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
// Extract Column Names
ColNames = dt << Get Column Names("String");
// Extract Rows from a column
Cities = dt:city << Get Values;
// Change Column Name
Col = Column(dt,1);
Col << Set Name("City_Edit");
// Change Row Values
dt:City_Edit[7] = "TEMPE";
Re: テーブルの結合列名をどのように再コード化しますか?@pmrozまた、私のテーブルでは [再コード化] オプションがグレー表示になっています。
Re: テーブルの結合うーん、数字と "%" 記号が入っているため、おそらく列名を抽出することさえできません。 どうすればよいか教えてもらえますか? 今のところ、名前を抽出するためにこのスクリプトに取り組んでいます。 ありがとう。
dt = Open( "C:\Users\filepath\try1.jmp" );
Col_names = dt << 列名を取得();
表示(列名);
Re: テーブルの結合列 > ユーティリティ > 再コード値を標準値に変更できます。
Re: テーブルの結合@aam_jmp 、
2ステップ。
ステップ 1: 表 1 のタイトルの値を抽出する
ステップ 2: 表 1 のタイトルをループし、表 2 で類似した名前を探し、同じ内容を反映するように行を更新します。
Re: テーブルの結合列内の名前を、結合先のテーブルと同じになるように操作するにはどうすればよいですか?
Re: テーブルの結合@aam_jmp 、
テーブル間の内部結合では、一致する列が検索されます。 テーブル 2 の同じ行の名前を変更できますか? そうすれば自動的に望む結果が得られます。 行が多すぎて追跡できない場合を除き、これはそれを行う 1 つの方法です。