値ラベルを「適用」する列から数式を削除しても、計算された値は残ります。
列から値ラベルプロパティを削除すると、値は元の値に戻ります。
列のデータ型を文字に変換し、値ラベルを保持する、値ラベルの代替の削除 (~ "適用")関数はありますか?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "sex2",
Formula(Recode(:sex,{Map Value( _rcOrig, {"F", "female", "M", "male"} )}));
);
dt:sex 2 << Delete Formula;
dt:sex << Value Labels( {"F" = "female", "M" = "male"} ) << Use Value Labels( 1 );
dt:sex << delete property( Value Labels );高度な統計モデリングデータのブレンディングとクリーンアップマスカスタマイゼーション品質およびプロセスエンジニアリングRe: 値ラベルを「適用」する列の値を列のラベルに置き換える方法が見つかりませんでした。おそらく、別のコミュニティ メンバーが直接的な解決策を持っているでしょう。しかし、通常どおり、JSL は解決策を提供できます。以下は、値ラベルを持つ Character 列で動作するスクリプトです。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:sex << Value Labels( {"F" = "female", "M" = "male"} ) << Use Value Labels( 1 );
replaceWithLabels = Function( {var},
Eval(
Parse(
"vl = Parse( Substr( Char( :" || var || " << get property( \!"value labels\!" ) ), 14,
Contains( Char( :" || var ||
" << get property( \!"value labels\!" ) ),\!")\!" ) - 14 ) );
:" || var || " << delete property( \!"value labels\!" );"
)
);
theFormula = "for each row(";
For( element = 1, element <= N Items( vl ), element++,
theFormula = theFormula || "if(:" || var || " ==" || Word( 1, Char( vl[element] ), "=" ) || ", :" || var || " =" ||
Word( 2, Char( vl[element] ), "=" ) || ");"
);
Eval( Parse( theFormula || ");" ) );
);
replaceWithLabels("sex");Re: 値ラベルを「適用」する値ラベルを設定した後

列を再コード化すると、列を再コード化するオプションが表示されます


これは値をラベルに置き換えるようです
Re: 値ラベルを「適用」する素晴らしい、ありがとう!