Re: Spaltenliste in Formeln verwenden UsingHallo @jthi ,
Ich bin mir nicht sicher, ob dies beabsichtigt ist oder nicht, aber es hängt definitiv mit den Listenklammern, {} und der Anzahl der Elemente in der Liste zusammen. Ich konnte die von dir beschriebenen Probleme reproduzieren.
Ich denke, Ihre Lösung für das Einfügen in die beste Wahl ist. Das Parsen kann sehr kompliziert und schwierig werden. Ich denke, Sie haben mit dem Einfügen in eine gute Lösung und bleiben am besten dabei, um das Problem mit der Listenklammer zu umgehen.
DS
Re: Spaltenliste in Formeln verwendenWieder liefert der JMP Discovery Summit Meet the Experts! Hüpfte zu Scripting für Automation & Kundengruppenraum und @EvanMcCorkle hatte eine viel sauberere Lösung als mein Looping-Insert und Eval-Parse; S Ersetzen der Liste um listOfCols durch ColSum:
listOfCols = {:height, :age, :sex}; //won't work here
f = Substitute(listOfCols, Expr(list), Expr(ColSum));
Show(f); //f = ColSum(:height, :age, :sex);Ich bin mir nicht sicher, ob die Funktionen von Col Sum() mit Spaltenlisten funktionieren, aber diese Lösung ist sauber und einfach.
Verwenden von Spaltenlisten in FormelnIch bin auf ein "Problem" gestoßen, als ich versuchte, eine Spaltenliste direkt zu verwenden, die aus dem Spaltendialog zurückgegeben wurde (zum Beispiel {:sex, :age: name}). Wenn ich versuche, diese Liste direkt in Col-Formeln (Col Mean, Col Sum...) mit byVars zu verwenden, funktioniert die Formel nicht richtig. Die Verwendung der Liste mit beispielsweise der Sum()-Formel funktioniert gut. Ist dies beabsichtigtes Verhalten und hat jemand bessere Möglichkeiten, Col Sums aus einer Liste von Spalten zu erstellen, als die Beispiele, die ich unten habe?
Unten sehen Sie das Beispielskript mit den Formeln Sum() und ColSum(). Es gibt verschiedene Möglichkeiten, wie ich versucht habe, die ColSum()-Formeln zu erstellen, aber es gelang mir, sie nur mit Insert Into mit Ausdrücken und EvalParse zum Laufen zu bringen (was ich aufgrund des Ärgers beim Debuggen versuchen werde, zu vermeiden).
Beispiel:
Namen sind standardmäßig hier(1); dt = Open("$SAMPLE_DATA/Big Class.jmp"); dt << Neue Spalte("Summe", Numeric, "Continuous", Format("Best", 12), Formula(Sum(:height, :weight))); listOfCols = {:Höhe, :Gewicht}; //Liste funktioniert hier dt << New Column("SumList", <
Skripting