Utiliser la liste des colonnes dans les formulesJ'ai rencontré un "problème" en essayant d'utiliser directement une liste de colonnes renvoyée par la boîte de dialogue de colonnes (par exemple {:sex, :age: name}). Lorsque j'essaie d'utiliser cette liste directement dans les formules Col (Col Mean, Col Sum...) avec byVars, la formule ne fonctionnera pas correctement. Utiliser la liste avec par exemple la formule Sum() fonctionne bien. Est-ce un comportement prévu et quelqu'un a-t-il des moyens plus propres de créer des sommes de colonnes à partir d'une liste de colonnes que les exemples que j'ai ci-dessous ?
Vous trouverez ci-dessous l'exemple de script avec les formules Sum() et ColSum(). J'ai essayé de créer les formules ColSum() de différentes manières, mais j'ai réussi à les faire fonctionner uniquement avec Insert Into avec des expressions et EvalParse (ce que j'essaierai d'éviter en raison de problèmes de débogage).
Exemple:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Sum", Numeric, "Continuous", Format("Best", 12), Formula(Sum(:height, :weight)));
listOfCols = {:height, :weight}; //list works here
dt << New Column("SumList", <<FORMULA></FORMULA>
Modélisation statistique avancéeAutomatisation et scriptsMélange et nettoyage des donnéesConception d'expériencesIngénierie Qualité et ProcédésRe : Utiliser la liste des colonnes dans les formulesUne fois de plus, le JMP Discovery Summit Meet the Experts tient ses promesses ! J'ai sauté vers Scripts pour la salle de discussion Automation & Cust et @EvanMcCorkle avait une solution bien plus propre que mon insertion en boucle dans et mon analyse d'évaluation ; s en remplaçant la liste autour de listOfCols par ColSum :
listOfCols = {:height, :age, :sex}; //won't work here
f = Substitute(listOfCols, Expr(list), Expr(ColSum));
Show(f); //f = ColSum(:height, :age, :sex);Je ne sais pas si la façon dont les fonctions Col Sum() fonctionnent avec la liste de colonnes, mais cette solution est propre et simple.
Re : Utiliser la liste des colonnes dans les formulesSalut @jthi ,
Je ne sais pas si cela est intentionnel ou non, mais cela est certainement lié aux crochets de la liste, {} et au nombre d'éléments de la liste. Je pourrais reproduire les mêmes problèmes que vous avez décrits.
Je pense que votre solution pour faire l'Insérer dans est le meilleur choix. L'analyse peut devenir très compliquée et difficile. Je pense que vous avez une bonne solution avec Insert Into et qu'il est préférable de s'en tenir à cela afin de contourner le problème des crochets de liste.
DS