如何按另一列缩放列您好,我有一个表格,结构如下:一些名义列和很多数值列。

我想创建一个新的“table_scaled”表,其中包含名义列,并将 N(#) 列除以“N rows”列,再乘以 100,得到百分比。我尝试了以下代码,但只得到了一个空的新表,其中有一列为空白。请问有什么建议吗?
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) )
)
)
);
自动化和脚本编写数据访问大规模定制质量与工艺工程回复:如何按另一列缩放列您能否提供一个带有正确值的示例,说明您希望最终表格的外观如何? 还可以提供可用于开发脚本的数据表(删除源脚本并在需要时匿名),因为表的图片不能用于此。
回复:如何按另一列缩放列嗨,亚尔莫,
谢谢,肯定的事情。 我附上了作为起始表的摘要,而 summary_scaled 是我想要编写的脚本。
回复:如何按另一列缩放列如果您有 JMP16+,这里是一个选项
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 循环。