Problème
Vous souhaitez ajouter le même ensemble de nouvelles colonnes basées sur des formules à vos données encore et encore.
La solution
Stockez les formules et les noms de colonne dans une table.Extrayez-les de ce tableau. bouclez-les en essayant de créer une nouvelle colonne pour chaque paire dans votre table de données cible.
favorite_formulas=function({dt1=currentdatatable(),FFpath},{default local},
/*
adds formulas to a data table from another data table <BR />used to store column names and respective formulas
example: favorite_formulas(currentdatatable(),"my_formulas.jmp");
FFpath must point to a file with columns "formula" and "colname" <BR />with text of desired formulas and column names
in the order they should evaluate (row 3 can use the column created by row 2, etc)
*/
try( //open setup file and get list of formulas and column names
dtFF=open(FFpath);
current data table(dtFF);
dt1 << suppressFormulaEval(true);
try(c=:colname,<BR /> wait(0);statusmsg("setup file must contain column colname");<BR /> throw ("setup file must contain column colname"));
try(c=:formula,<BR /> wait(0);statusmsg("setup file must contain column formula");<BR /> throw("setup file must contain column formula"));
CN=column("colname")<<GETVALUES></GETVALUES>Discussion
Je récupère souvent des données avec les mêmes colonnes et le même format et je souhaite ajouter à chaque fois le même ensemble de nouvelles colonnes de formules.Ceci est juste une friandise qui facilite cela et facilite le partage d'ensembles de "formules préférées" avec d'autres utilisateurs sous forme de tableaux de données simples et lisibles.J'utilise cette version de fonction dans de nombreux autres scripts, mais j'ai également une version complémentaire.
Voir également
Cette fonctionnalité est directement prise en charge par Formula Depot, disponible dans JMP Pro. Enregistrez vos formules de la table dans le dépôt à l'aide de "Ajouter une formule à partir d'une colonne", puis transférez-les ultérieurement dans une nouvelle table à l'aide de "Exécuter des scripts".
