データテーブルをマージするこんにちは、みんな、
テーブル「Untitled23」の列「Result_test2」のデータをテーブル「Untitled22」の新しい列に追加する必要があります。 データは、「無題27」の表に示すように配置する必要があります。 最初のテーブル(「無題22」)の各バッチには、バッチごとに10個のデータポイントがありますが、2番目のテーブル(「無題23」)には、バッチごとに3個のデータポイントしかありません。 JOIN関数でさまざまな可能性を試しましたが、必要なものが得られません。

ヘルプは大歓迎です
よろしくお願いします、
NS
データ表Re:データテーブルをマージします両方のテーブルにグループ化行順序列を追加します。
無題22:
Col Cumulative Sum(1, :Batch no. 1)
無題23:
Col Cumulative Sum(1, :Batch no_2)


次のようなもので参加してください:


余分な列を削除します。

Re:データテーブルをマージしますこれは非常に簡単なことです。
これをインタラクティブに行うには、
- 両方のデータテーブルを開きます
- 表1に移動し、次の式を使用して「subcount」という新しい列を作成します
If(
Row() == 1, x = 1,
Lag( :Batch no. 1 ) == :Batch no. 1, x++,
x = 1
);
x;
- 2番目のテーブルに移動し、2番目のテーブルの列名が異なるため、式が少し異なる「サブカウント」とも呼ばれる新しい列を作成します。
If(
Row() == 1, x = 1,
Lag( :Batch no_2 ) == :Batch no_2, x++,
x = 1
);
x;
- 最初のデータテーブルをクリックして、アクティブなテーブルにします
- テーブルに移動=>更新
- 更新を取得するテーブルとして2番目のテーブルを選択します
- 列バッチ番号を選択します。最初のテーブルの1と、一致する2番目の列の列Batch no_2
- 一致する列の2番目のペアとして、最初のテーブルから列サブカウントを選択し、2番目のデータテーブルから列サブカウントを選択します
- [OK]をクリックします
- 列サブカウントの列ヘッダーをクリックしてから、右クリックして[列の削除]を選択します
- 2番目のデータテーブルに対して上記の手順を繰り返します
以下は、上記のインタラクティブな手順と同じアクションを実行するスクリプトです。
Names Default To Here( 1 );
dt1 = Data Table( "untitled 22" );
dt2 = Data Table( "untitled 23" );
dt1 << New Column( "subcount",
formula(
If(
Row() == 1, x = 1,
Lag( :Batch no. 1 ) == :Batch no. 1, x++,
x = 1
);
x;
)
);
dt2 << New Column( "subcount",
formula(
If(
Row() == 1, x = 1,
Lag( :Batch no_2 ) == :Batch no_2, x++,
x = 1
);
x;
)
);
dt1 << Update( With( dt2 ), Match Columns( :Batch no. 1 = :Batch no_2, :subcount = :subcount ) );
dt1 << delete column(subcount);
dt2 << delete column(subcount);
Re:データテーブルをマージしますできます。 どうもありがとうございました。 ある人にとっては非常に複雑なものが、別の人にとっては非常に単純なものになる可能性があることは驚くべきことです。