列を別の列でスケーリングするにはどうすればよいですか?こんにちは。以下のような表があります。名義尺度の列がいくつかあり、その後、たくさんの数値列があります。

そして、名義列をコピーし、N(#)列を「N行」列で割って100を掛けてパーセントを取得する新しい「table_scaled」を作成したいのですが、このコードを試しても、1つの空白列を持つ空の新しいテーブルしか作成されません。何かアドバイスはありますか?
dt = Current Data Table();
NewTable("HOT_COLD_summary_scaled",
For( i = 1, i <= N Cols( HOT_COLD_summary ), i++,
dt << New Column(
Column( i ) << get name,
Numeric,
"Continuous",
Formula( (:column( i )*100) /(HOT_COLD_summary:N rows) )
)
)
);
自動化とスクリプト作成データアクセスマス・カスタマイゼーション品質およびプロセスエンジニアリングRe: 別の列で列をスケーリングするにはどうすればよいですか最終的なテーブルをどのように見せたいかについて、正しい値の例を挙げていただけますか? テーブルの画像は使用できないため、スクリプトの開発に使用できるデータ テーブルを提供することもできます (ソース スクリプトを削除し、必要に応じて匿名化します)。
Re: 別の列で列をスケーリングするにはどうすればよいですかこんにちは、ヤルモです。
ありがとう、たしかに。 開始テーブルである概要を添付しました。
Re: 別の列で列をスケーリングするにはどうすればよいですかJMP16+ をお持ちの場合は、ここに 1 つのオプションがあります
Names Default To Here(1);
dt = Open("$DOWNLOADS/summary.jmp");
dt_copy = dt << Subset(All Rows, Selected Columns(0), Output table("summary_scaled"));
close(dt, no save);
col_list = dt_copy << Get Column Names("String");
// first col isn't needed, second col is expected to be N Rows -> skip those
cols_of_interest = Remove(col_list, 1,2);
For Each({ncol}, cols_of_interest,
new_col = Eval(EvalExpr(
dt_copy << New Column(ncol ||"_scaled%", Numeric, Continuous, Formula(
100*Expr(Name Expr(AsColumn(ncol))) / :"N Rows"n
))
));
dt_copy << Move Selected Columns({new_col}, after(Eval(ncol)))
);
古い JMP を使用している場合は、For Each を For ループに置き換える必要があります。