Créer une nouvelle colonne avec une formule enregistrée en tant que variable dans un scriptJ'utilise un script pour extraire une formule prédite à partir de mes données. Je modifie ensuite cette formule par substitution et souhaite maintenant créer une nouvelle colonne avec la formule modifiée. Je pense que c'est facile, mais lorsque j'essaie d'écrire ce script, la formule enregistrée comme variable n'est pas reconnue. Toute aide serait la bienvenue ; n'hésitez pas à me contacter si vous avez besoin de plus d'informations.
//Script that just shows saving the formula as a variable fm and modifying the variable using substitute to fm2
fm = report(obj1)[OutlineBox("Polynomial ?")][TextEditBox(1)] << get text;
//get the string to the right of the equal sign and convert the string to an expression using Parse()
fm = Parse(Trim(word(2, fm, "=")));
fm2 = Substitute(NameExpr(fm), EvalExpr(LnTime2), EvalExpr(log(Time2)));
//Script to create a new column with the fm2 formula that does not work
dt << New Column( "Predicted", Numeric, Formula (fm2));
//Voici ce qui est renvoyé dans le journal lorsque vous imprimez fm2 dans le script
Imprimer(fm2);
(-0,270568) + 0,0352458 * Log(Time2) - 0,0331127 * (Log(Time2) - 7,22484) ^ 2 + 0,0046766 * (Log(Time2) - 7,22484) ^ 3 + 0,0075752 * (Log(Time2) - 7,22484) ^ 4 + 0,0012501 * (Log(Time2) - 7,22484) ^ 5 + 0,000026534 * (Log(Time2) - 7,22484) ^ 6
Modélisation statistique avancéeÉtudes de marché et de consommationOrganisation du contenuFusion et nettoyage des donnéesExploration et visualisation des donnéesPersonnalisation de masseIngénierie de la qualité et des procédésPartage et communication des résultatsRe : Créer une nouvelle colonne avec une formule enregistrée en tant que variable dans un scriptMerci!
Re : Créer une nouvelle colonne avec une formule enregistrée en tant que variable dans un scriptMerci pour le conseil de conserver la formule sous forme de chaîne et d'ajouter ":" pour indiquer à JMP s'il s'agit d'une colonne. Je ne pouvais pas faire fonctionner eval(parse()), je ne savais pas pourquoi le guillemet double était également nécessaire.
Re : Créer une nouvelle colonne avec une formule enregistrée en tant que variable dans un scriptJe garderais la formule sous forme de chaîne, la remplacerais en y ajoutant un ":" pour faire savoir à JMP que vous avez affaire à une colonne, puis utiliser
eval(parser())
pour l'exécuter.Voici un exemple simple
names default to here(1);
dt=current data table();
fm="height";
fm2 = substitute(fm, expr("height"), "log(:height)");
eval(parse("dt << new column (\!"predicted\!",numeric,formula(" || fm2 || "));"));Re : Créer une nouvelle colonne avec une formule enregistrée en tant que variable dans un scriptEssayez ceci à la place :
Eval(
Substitute(
Expr( dt << New Column( "Predicted", Numeric, Formula ( fff ) ) ),
Expr( fff ), Name Expr( fm2 )
)
);