公開日: 09/19/2023

データテーブル内のデータを置換する

Updateメッセージは、あるデータテーブルのデータを別のデータテーブルのデータで置き換えます。

dt << Update( // 元のテーブルへのメッセージ
	With( dataTable ), // もう一方のデータテーブル
	By Row Number, /* デフォルトの結合タイプ。または
		By Matching Columns( col1 == col2 ) */
	Ignore Missing, // 欠測値で置き換えることはしない(オプション)
	);

メモ: Merge UpdateUpdateの別名です。

実際の例として、「Big Class.jmp」のサブセットを作成してみましょう。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
NewHt = dt << Subset( Columns( :名前, :"身長(インチ)"n), Output Table Name( "hts" ) );

次に、各生徒の身長に0~6インチを追加します。

diff = Random Uniform( 0, 6 );
For Each Row( NewHt, :"身長(インチ)"n = :"身長(インチ)"n + diff );

最後に、「Big Class.jmp」の生徒の身長をサブセットテーブルの新しい身長で更新します。

dt << Update(
	With( NewHt ),
	By Matching Columns( :名前 == :名前 ),
	);

更新されたテーブルに追加する列を制御する

更新後のテーブルには、元のテーブルよりも多くの列が含まれる場合があります。オプションのAdd Column from Update Table()を使えば、更新されたテーブルに含める列を選択できます。

列を追加しない場合は、次のように指定します。

Data Table( "table" ) << Update(
	With( Data Table( "update data" ) ),
	Match Columns( :ID = :ID ),
	Add Columns from Update Table( None )
);

列を追加する場合は、次のように指定します。

Data Table( "table" ) << Update(
	With( Data Table( "update data" ) ),
	Match Columns( :ID = :ID ),
	Add Columns from Update table( :col1, :col2, :col3 )
);
より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).