Update() を使用してメインテーブルに新しい行を追加する(インデックスに基づいて) 新しい行を含むテーブルを更新しようとしています。
以下は機能しないように見えるため、結合を使用する必要があるようです(ここでは、インデックスは名前列です)。
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = New Table( "Little Class",
Add Rows( 3 ),
New Column( "name",
Character,
Nominal,
Set Values( {"ALICE", "NEW_NAME", "OTHER_NEW_NAME"} )
),
New Column( "height",
Continuous,
Set Values( [999, 999, 999] )
),
New Column( "weight",
Continuous,
Set Values( [999, 999, 999] )
),
New Column( "RANK",
Continuous,
Set Values( [3, 1, 2] )
),
New Column( "CODE",
Continuous,
Set Values( [0, 1, 1] )
)
);
dt1 << Update(
With( Data Table( "Little Class" ) ),
Match Columns( :name = :name ),
Add columns from Update table( {:RANK} )
);
データのブレンディングとクリーンアップRe: Update() を使用してメインテーブルに新しい行を追加する新しい参加プラットフォームは次のようになります。
https://community.jmp.com/t5/JMP-Wish-List/Tables-join-option-to-update-main-table/idc-p/653857/highlight/true#M4537

Re: Update() を使用してメインテーブルに新しい行を追加するメインテーブルを更新するオプションを追加したいと書きました。
テーブル結合: メインテーブルを更新するオプション
気軽にサポートしてください:)
Re: Update() を使用してメインテーブルに新しい行を追加するほとんどの場合、私は非表示テーブルを使用してこれを実行します。これにより、(非表示テーブルが閉じられていない場合) JMP ウィンドウ リストから簡単に開くことができるからです。
ウィンドウ リストでは、非表示のテーブルは灰色 (透明) で表示されます。テーブルをダブルクリックすると表示されます。

また、テーブルに名前を追加することをお勧めします。テーブルが多数開いていて、何らかの理由でコードが正しく実行されなかった場合に、デバッグを開始しやすくなります。 名前を変更しないと、「何かのサブセット 1」、「何かのサブセット 2」、「無題 1」などのように、ただ混乱したものになります。
以下は、dt を非表示として開き、dt_new を非表示のテーブルとして作成する例です。 次に、これらを JOINED_TABLE という新しいテーブルに結合してユーザーに表示し、最後に dt と dt_new を保存せずに閉じます。 <BR />
</CODE><CODE class=" language-jsl">Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp", invisible);
dt_new = New Table( "Little Class",
Add Rows( 3 ),
New Column( "name",
Character,
Nominal,
Set Values( {"ALICE", "NEW_NAME", "OTHER_NEW_NAME"} )
),
New Column( "height",
Continuous,
Set Values( [999, 999, 999] )
),
New Column( "weight",
Continuous,
Set Values( [999, 999, 999] )
),
New Column( "RANK",
Continuous,
Set Values( [3, 1, 2] )
),
New Column( "CODE",
Continuous,
Set Values( [0, 1, 1] )
),
invisible
);
dt_joined = dt << Join(
With(dt_new),
Merge Same Name Columns,
By Matching Columns(:name = :name),
Drop multiples(0, 0),
Include Nonmatches(1, 1),
Preserve main table order(1),
Output table("JOINED_TABLE")
);
Close(dt, no save);
Close(dt_new, no save);
Re: Update() を使用してメインテーブルに新しい行を追加するそうか。 この最後のステップを簡単にするために何を推奨しますか?
「dt」(オリジナル)と「dt_joined」(「dt」+「dt_new」)があります。
Re: Update() を使用してメインテーブルに新しい行を追加する同じオプションをテストしたところ、同じように動作し、新しいテーブルが作成されました。
JMP で開いているテーブルを処理するのは苦労しますが、スクリプトを作成する場合は非常に簡単です (余分なコードを追加します)。テーブルを非表示/プライベートとして開いたり作成したり、保存しないとわかったら保存せずにすぐに閉じます。もうそれらは必要ありません。
Re: Update() を使用してメインテーブルに新しい行を追加する「追加のテーブルを処理する必要があることを除いて」
その通り。 更新オプションを選択して結合を実行しているにもかかわらず、新しいテーブルが生成されます。
dt<< Join(
With( dt_new ),
Update, // this option is selected
By Matching Columns( :index= :index),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 1 ),
Preserve main table order( 1 )<BR />);<BR /><BR />// Opens new table apart of dt and dt_newRe: Update() を使用してメインテーブルに新しい行を追加するここのコミュニティから同様の投稿が見つかり、新しい行が追加されたときに更新ではなく結合を使用することが提案されました。
JMPデータテーブルの更新
更新の代わりに結合を使用できなかった理由はありますか (追加のテーブルを処理する必要があることを除いて)。
JMP ヘルプより:データテーブルの更新:
2 つのデータ テーブルがあり、新しいテーブルのデータで元のテーブルを更新したい場合は、テーブル > 更新。 Update コマンドは、その場で結合する特殊なケースです。 更新オプションがチェックされた結合ですとなり、新しいテーブルは作成されません。
Re: Update() を使用してメインテーブルに新しい行を追加するあなたの述べた仮定は正しいので、やりたいことをするには参加プラットフォームを使用する必要があります。