Spaltenformel unter Verwendung von Daten aus anderen ZeilenHallo! Ich habe eine Datentabelle im Datenbankstil, die Daten aus einer Reihe von Prozessschritten speichert. Jede Zeile stellt eine Probe aus einem bestimmten Prozessschritt dar, und in dieser Zeile gibt es einen Verweis auf die übergeordnete Probe. Die Ausgangsprobe stammt aus demselben Material, jedoch aus dem vorherigen Prozessschritt. Ich interagiere hauptsächlich über eine JMP-App mit dieser Datenbanktabelle, daher ist Skripting eine akzeptable Möglichkeit, die Daten zu manipulieren.
In dieser Tabelle möchte ich einige Parameter zu jeder Stichprobe berechnen, einschließlich der Art und Weise, wie sich diese Stichprobe im Vergleich zur übergeordneten Stichprobe verändert hat. Einige dieser Parameter könnten wie folgt berechnet werden:
gemessene Daten vom Kind * gemessene Daten vom Elternteil .
Andere Parameter könnten wie folgt berechnet werden (wobei der berechnete Wert des übergeordneten Elements der obigen Gleichung ähneln würde):
gemessene Daten vom Kind * berechneter Wert vom Elternteil
Ich habe hierfür eine derzeit funktionierende Lösung, die jedoch sehr langsam ist und viele Aufrufe von „Formeln erneut ausführen“ erfordert.
Bevor ich meine aktuelle Lösung beschreibe, möchte ich einige Empfehlungen für die besten Möglichkeiten erhalten, dies zu erreichen. Vielleicht gehe ich bei der Datenstruktur falsch vor! Wenn möglich, wäre es erstaunlich, wenn ich die Berechnungen in dieser Tabelle behalten könnte.
Unten sehen Sie ein Bild, das die aktuelle Struktur der Daten zeigt und zeigt, wie sie vom übergeordneten zum untergeordneten Element kaskadiert werden müssen, um alle korrekten Berechnungen durchführen zu können.
Vielen Dank für Ihre Hilfe!

Betreff: Spaltenformel unter Verwendung von Daten aus anderen ZeilenDie Spaltenzusammenfassungsstatistiken im Formeleditor können eine oder mehrere Gruppierungsvariablen annehmen.
Col Mean( :Parent Data, :ParentID )
Gibt Ihnen den Mittelwert für die Daten in den übergeordneten Daten, gruppiert nach ParentID.
Betreff: Spaltenformel unter Verwendung von Daten aus anderen ZeilenSehen Sie sich diesen Link mit einer where-Anweisung mit row() und Indizes an
JMP-Index-Match
Aber je mehr man versucht, es zu nutzen, desto komplizierter wird es ... Ich finde, dass es für solche Dinge schneller/einfacher ist, einfach Excel zu verwenden und ein Importdatenskript zu schreiben.
Betreff: Spaltenformel unter Verwendung von Daten aus anderen Zeilen@Peter_Hersh , ja, das macht Sinn und so mache ich das derzeit. Es funktioniert einwandfrei, aber aufgrund der Art und Weise, wie ich die Daten gruppiert habe, durchlaufe ich derzeit verschiedene Teilmengen der Daten, was ziemlich viel Zeit in Anspruch nimmt. Außerdem wäre es schön, wenn die übergeordneten Datenspalten jedes Mal aktualisiert würden, wenn die übergeordneten Zeilen aktualisiert werden, weshalb ich gehofft hatte, dass eine Spaltenformel verwendet werden könnte. Wenn ich bei der Teilmengen- und Aktualisierungslösung bleiben muss, könnte ich ein Skript „Übergeordnete Daten vermehren“ in der Tabelle oder so etwas verwenden.
@DonMcCormack , Die Eltern-/Kind-Beziehungen werden einfach durch die Verwendung der Spalte „ParentID“ definiert. Jede Zeile enthält sowohl die Proben-ID als auch die Eltern-ID. Daher müssen Kinder im Wesentlichen in der Kette zu den Eltern nachschlagen, um die benötigten Daten zu finden.
Ich habe herausgefunden, dass es möglich ist, eine solche Spaltenformel zu verwenden, um die übergeordneten Daten abzurufen. Diese Formeln müssen jedoch mehrmals ausgeführt werden, damit die Daten durch die abhängigen Zeilen/Spalten kaskadiert werden können. Im Beispiel in der ersten Tabelle werden bei der ersten Ausführung der Formel Daten aus „:Data“ in „:ParentData“ eingefügt, die Spalte „:ParentData/ParentData“ bleibt jedoch leer, da die Formel ausgeführt wurde, bevor die Daten aufgefüllt wurden. Oder.. .so etwas zumindest.
Vielen Dank für Ihre Gedanken!
dt = CurrentDataTable();
parent = :ParentID;
rows = dt << GetRowsWhere(:SerialNumber == parent);
Mean(Column(dt, "LayersMPAFraction")[rows]);
Betreff: Spaltenformel unter Verwendung von Daten aus anderen ZeilenWie definieren Sie die Eltern-/Kind-Beziehungen? Es wäre schwierig, eine robuste Lösung zu finden, ohne dies vorher zu wissen. Ein Blick auf Ihre ursprüngliche Lösung könnte hilfreich sein.
Betreff: Spaltenformel unter Verwendung von Daten aus anderen ZeilenOK, der Trick, der meiner Meinung nach gut funktionieren würde, besteht darin, die Originaldaten nur mit der übergeordneten ID und der übergeordneten Datenspalte zu unterteilen.Anschließend wird es wieder mit den Originaldaten verknüpft.Zuordnung der Eltern-ID zur Kinder-ID.Hoffe das ist klar.Lassen Sie es mich wissen, wenn das nicht klar ist
Betreff: Spaltenformel unter Verwendung von Daten aus anderen ZeilenDanke @Peter_Hersh !
Nach meiner Beschreibung würde Lag zwar gut funktionieren, aber Sie haben Recht damit, dass die Daten nicht immer auf diese Weise strukturiert sind. Die untergeordneten und übergeordneten Daten können in einer unterschiedlichen Anzahl von Zeilen und in unterschiedlichen Abständen von den neuen Zellen enthalten sein. Ich könnte beispielsweise drei Datenzeilen für Proben-ID A haben, die ich mitteln möchte, um sie in alle Zeilen des untergeordneten Elements einzubeziehen. Und es kann mehrere Kinder für denselben Elternteil geben.
Scheint, als hätte ich mein Beispiel zu stark vereinfacht, haha. Vielleicht könnte der andere Weg, den Sie angespielt haben, helfen?
Betreff: Spaltenformel mit Daten aus anderen Zeilen@mringqui , Ja, dies sollte mit der Lag-Funktion im Formel-Builder kein Problem sein.Ich bin nicht sicher, ob Ihre Datenstruktur immer so ist.Es gibt eine Möglichkeit, dies anders zu machen, wenn der Abstand zwischen Eltern und Kindern nicht immer gleich ist.
Betreff: Spaltenformel mit Daten aus anderen ZeilenHat jemand irgendwelche Ideen?