公開日: 04/21/2025

列の再コード化

Recode Columnメッセージを使うと、列内のすべての値を一度に変更することができます。元の列(参照列)、変換のリスト、出力先の列を指定します。この機能は、参照列を変換し、出力先の列を更新します。Update Properties引数がオンになっている場合は、列を再コード化したときに「値ラベル」、「値スコア」、「値の表示順序」、「値の色」、「上位カテゴリ」、「コード変換」、「欠測値のコード」の列プロパティが更新されます。

obj << Recode Column(<column reference>, {<transform>, ...}, <Update Properties(0|1)>, Target Column(<column reference> | <column name>))

Recode Columnの実行中に、以下の2つの特殊なJSL変数に値が設定されます。

_rcNow

現在のステップまでの変換を実行した後の値。

_rcOrig

元の値。

変換を開始する時点では、_rcNowおよび_rcOrigは同じ値を持っています。

次の例では、「Consumer Preferences.jmp」で、「性別」列のコード変換を1|2から0|1に変更し、値ラベルはそのままにしています。

dt = Open( "$SAMPLE_DATA/Consumer Preferences.jmp" );
col = New Column( :性別 );
dt << Recode Column(
	:性別,
	{if(
		_rcNow == 1, 0,
		1,
	)},
	Update Properties( 1 ),
	Target Column( col )
);

元の列に変換を適用することもできます。「Big Class.jmp」の「年齢」列を年齢グループに再コード化します。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Recode Column(
	:年齢,
	{if(
		_rcNow >= 17, "高学年",
		_rcNow >= 15, "中学年",
		"低学年"
	)},
	Target Column( :年齢)
);

次の例では、列の再コード化に_rcOrig_rcNowの両方を使用しています。_rcOrigを使用して、CAROLの新しい値がCHRISの元の値とまとめられて両方が’Christine’に変更されてしまうことのないようにしています。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
	dt << Begin Data Update;
	col1 = dt << New Column( dt:name );
	col1 << Set Name( "name Titlecase" );
	dt << Move Selected Columns( {col1}, after( dt:name ) );
	dt << Recode Column(
		dt:name,
		{Titlecase( _rcOrig ),
		Map Value(
		_rcOrig,
		{"CAROL", "Chris",
		"CHRIS", "Christine"},
		Unmatched( _rcNow ) //変換後の値。
		)},
			Update Properties( 1 ),
			Target Column( col1 )
	);
	dt << End Data Update;
より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).