Ajout de colonnes de formules basées sur la liste des noms de colonnesSalut! J'essaie de créer un script qui générera des colonnes de formule en fonction du fait qu'un nom de colonne contient le bon mot-clé. Je pense que j'abuse de la façon dont les listes traduisent les chaînes en d'autres fonctions. J'utilise actuellement JMP 17
Ptable = Current Data Table ();
col list = Ptable << Get Column Names(String);
if(debug == 1, Print(col list));
For(i=1, i<NCOLS></NCOLS>
<LINGO-LABS id="lingo-labs-724835" slang="en-US" mode="CREATE"><LINGO-LABEL>Automatisation et scripts</LINGO-LABEL></LINGO-LABS>Re : Ajout de colonnes de formules basées sur la liste des noms de colonnesVoici une modification de votre code en utilisant la table de données Big Class comme exemple.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/big class.jmp" );
debug = 1;
Ptable = Current Data Table();
col list = Ptable << Get Column Names( String );
If( debug == 1,
Print( col list )
);
// Columns are going to be added to the data table. The For() clause
// will change the end point of the looping if ncols() is in the
// termination value
ncolumns = N Cols( Ptable );
For( i = 1, i <= ncolumns, i++,
If( Contains( col list[i], "eight" ),
// The formula equation needs to be fully parsed before applying it to
// the columns definition
Eval(
Substitute(
Expr(
New Column( col List[i] || " (kPa)",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Formula(
(((15 / (0.016 * Num( :age[1] ))) * Num( _col_ )) - 3.75) * 6.89476
)
)
),
Expr( _col_ ), parse(col list[i] )
)
)
)
);
Re : Ajout de colonnes de formules basées sur la liste des noms de colonnesVous devez y évaluer correctement la colonne. Expr(NameExpr(AsColumn())) est une option
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
mycol1 = "height";
mycol2 = "weight";
Eval(EvalExpr(
new_col = dt << New Column("Col", numeric, continuous, formula(
Expr(NameExpr(AsColumn(dt, mycol1))) * Expr(NameExpr(AsColumn(dt, mycol2)))
))
));
show(new_col << get formula);
Insérez une expression dans une autre à l'aide d'Eval Insert, Eval Expr, Parse et Substitute