Ich suche nach einer Möglichkeit, Daten in einem Diagramm so zu filtern, dass nur Daten einbezogen werden, die sich ansammeln oder erschöpfen. Die einfache Version davon ist Akkumulieren = Konzentration am Endzeitpunkt > Konzentration am Anfangszeitpunkt (oder < bei Erschöpfung). Es wird jedoch etwas komplizierter, da der endgültige Zeitpunkt nicht immer derselbe sein wird – einige Datensätze können sich über einen Zeitraum von 12 Tagen erstrecken, andere über 14 usw. Es ist auch üblich, dass jeder Zeitpunkt tatsächlich 3 beträgt repliziert, daher wäre es ideal, den Durchschnitt davon verwenden zu können, wenn man entscheidet, ob sich Dinge ansammeln oder erschöpfen (wenn nicht, würde es wahrscheinlich keine große Rolle spielen). Im beigefügten Bild möchte ich beispielsweise filtern und nur die blaue Linie für die Ansammlung von Analyten anzeigen können. Wir würden uns über jede Hilfe beim Einstieg freuen! Mein Ziel ist es, eine Spalte mit der Ausgabe „akkumulierend“ oder „erschöpfend“ zu haben, damit sie einfach zum Datenfilter hinzugefügt werden kann. Vielen Dank im Voraus!
Col Mean() und andere ähnliche Col-Funktionen (Col Min, Col Max,...) könnten hilfreich sein. Wenn Sie Beispieldaten mit einer Spalte mit den richtigen Antworten bereitstellen könnten, wäre es möglich, Beispiele bereitzustellen.
Hallo, ich habe eine transformierte/vereinfachte Version des Datentyps angehängt, mit dem ich arbeite, falls das hilft. Ich kenne die Col-Funktionen, habe aber Schwierigkeiten, die Dinge so zusammenzusetzen, dass sie funktionieren
Da es keine „richtige“ Antwortspalte gab, habe ich Vermutungen angestellt. Dieses Skript erstellt Formelspalten, die beim Aufbau der endgültigen Spalte helfen sollen. Es gibt auch andere Möglichkeiten bei der Verwendung von Formeln oder Sie können eine völlig andere Methode als nur Formeln verwenden
Names Default To Here(1);
dt = Open("$DOWNLOADS/Sample Data for JMP Forum.jmp");
dt << Sort(By(:Time), Order(Ascending), Replace Table); // to make this a bit simpler sort by :Time
// Assumption: Time and Analyte create a group
dt << New Column("Mean_TimeAnalyte", Numeric, Continuous, Formula(
Col Mean(:"Concentration (mM)"n, :Time, :Analyte)
));
// Assumption: We are looking for first and last average value for each Analyte
dt << New Column("FirstAnalyteValue", Numeric, Continuous, Formula(
Col Sum(
If(Row() == Col Min(Row(), :Analyte),
:Mean_TimeAnalyte
,
0
),
:Analyte
)
));
dt << New Column("LastAnalyteValue", Numeric, Continuous, Formula(
Col Sum(
If(Row() == Col Max(Row(), :Analyte),
:Mean_TimeAnalyte
,
0
),
:Analyte
)
));
dt << New Column("AnalyteStatus", Numeric, Continuous, Formula(
If(:LastAnalyteValue > :FirstAnalyteValue,
"Accumulating"
,
"Depleting"
);
));
gb = dt << Graph Builder(
Size(528, 492),
Show Control Panel(0),
Variables(
X(:Time),
Y(:"Concentration (mM)"n),
Group X(:AnalyteStatus),
Overlay(:Analyte)
),
Elements(
Points(X, Y, Legend(5), Summary Statistic("Mean")),
Line(X, Y, Legend(6))
),
Local Data Filter(Add Filter(columns(:AnalyteStatus)))
);

