Bonjour chers experts/utilisateurs jmp,
J'ai une table de données au format fixe avec des formats de nom de colonne similaires comme celui-ci (toujours un nom de deux colonnes similaire distingué par _1) :
NOM, C1, P2... C1_1, P2_1 .... (en fait plusieurs colonnes avec cette règle de dénomination)
J'aimerais créer de nouvelles colonnes avec la formule ci-dessous : par exemple,
C1_cal par : C1-C1_1
P2_cal par : P2-P2_1
...
comment puis-je utiliser JSL pour réaliser une boucle pour cela ? Merci beaucoup!
De nombreuses hypothèses sont formulées concernant les noms et l'ordre des colonnes.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(1),
Compress File When Saved(1),
New Column("Name", Character, "Nominal", Set Values({})),
New Column("Column1", Numeric, "Continuous", Format("Best", 12), Set Values([1])),
New Column("Column2", Numeric, "Continuous", Format("Best", 12), Set Values([2])),
New Column("Column1_1", Numeric, "Continuous", Format("Best", 12), Set Values([2])),
New Column("Column2_1", Numeric, "Continuous", Format("Best", 12), Set Values([4]))
);
all_colnames = dt << Get Column Names("String");
Remove From(all_colnames, 1); // Drop first column
For Each({col_name}, all_colnames[1::(N Items(all_colnames)/2)],
Eval(Substitute(
Expr(
dt << New Column(col_name|| "_cal", Numeric, Continuous, Formula(
_firstcol_ - _secondcol_
));
),
Expr(_firstcol_), Name Expr(AsColumn(col_name)),
Expr(_secondcol_), Name Expr(AsColumn(col_name || "_1"))
));
);
L'index de script et le guide de script contiennent de bonnes informations sur les scripts JMP.Insérez une expression dans une autre à l'aide d'Eval Insert, Eval Expr, Parse et Substitute est un bon article sur la façon de créer des formules à partir de variables
Merci beaucoup!!!
si je souhaite changer le formulaire en C1-3.5*C1_1 :
dois-je changer le code au format ci-dessous ?
_firstcol_ - 3,5*(_secondcol_)
Essayez-le et vérifiez les résultats et la propriété de la colonne de formule
