Come faccio a scalare le colonne in base a un'altra colonna?Ciao, ho una tabella che si presenta così: alcune colonne nominali e poi molte colonne numeriche.

Vorrei creare una nuova tabella "table_scaled" che contenga le colonne nominali copiate e le N(#) colonne divise per la colonna "N righe" e moltiplicate per 100 per ottenere una percentuale. Sto provando questo codice, ma ottengo solo una nuova tabella vuota con una colonna vuota. Qualche suggerimento?
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) )
)
)
);
Automazione e scriptingAccesso ai datiPersonalizzazione di massaIngegneria della qualità e dei processiRe: Come ridimensionare le colonne di un'altra colonnaPotresti fornire un esempio con valori corretti su come vuoi che sia il tavolo finale? Può anche fornire la tabella dei dati che potrebbe essere utilizzata per sviluppare lo script (rimuovere lo script di origine e anonimizzare se necessario) poiché l'immagine della tabella non può essere utilizzata per questo.
Re: Come ridimensionare le colonne di un'altra colonnaCiao Jarmo,
Grazie, certo. Ho allegato un riepilogo che è la tabella di partenza e summary_scaled è ciò che vorrei scrivere.
Re: Come ridimensionare le colonne di un'altra colonnaSe hai JMP16+ ecco un'opzione
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)))
);
Se hai JMP più vecchio dovrai sostituire For Each con il ciclo For.