Je cherche un moyen de filtrer les données sur un graphique pour n'inclure que les données qui s'accumulent ou s'épuisent. La version simple de ceci s'accumule = concentration au point de temps final > concentration au point de temps initial (ou < en cas d'épuisement). Cela devient cependant un peu plus compliqué en raison du fait que le point de temps final ne sera pas toujours le même - certains ensembles de données peuvent s'étaler sur 12 jours, d'autres sur 14, etc. Il est également courant que chaque point de temps soit vraiment 3 répliques, donc pouvoir utiliser la moyenne de ceux-ci pour décider si les choses s'accumulent ou s'épuisent serait idéal (sinon, cela n'aurait probablement pas beaucoup d'importance). Dans l'image incluse, par exemple, je voudrais pouvoir filtrer et afficher simplement la ligne bleue pour accumuler des analytes. Toute aide pour démarrer serait appréciée! Mon objectif est d'avoir une colonne avec une sortie de "accumulation" ou "épuisement", de cette façon, elle peut simplement être ajoutée au filtre de données. Merci d'avance!
Col moyenne() et d'autres fonctions Col similaires (Col Min, Col Max,...) pourraient être utiles. Si vous pouviez fournir des exemples de données avec une colonne indiquant les réponses correctes, cela permettrait de fournir un exemple.
Bonjour, j'ai joint une version transformée/simplifiée du type de données avec lequel je travaille, si cela peut vous aider. Je connais les fonctions Col, mais j'ai eu du mal à assembler les choses d'une manière qui fonctionne
Comme il n'y avait pas de colonne de réponse "correcte" fournie, j'ai fait des suppositions. Ce script créera des colonnes de formules qui devraient aider à construire la colonne finale. Il existe également d'autres options lors de l'utilisation de formules ou vous pouvez utiliser une méthode complètement différente de celle des formules
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)))
);

