グラフ上のデータをフィルタリングして、蓄積または減少しているデータのみを含める方法を探しています。 これの単純なバージョンは、蓄積 = 最終時点の濃度 > 初期時点の濃度 (減少している場合は <) です。 ただし、最終時点が常に同じであるとは限らないため、少し複雑になります。一部のデータセットは 12 日間にわたる場合もあれば、一部のデータセットは 14 日間にわたる場合もあります。また、各時点が実際には 3 であることも一般的です。複製されるため、ものが蓄積しているか減少しているかを判断するときにそれらの平均を使用できれば理想的です (そうでない場合は、おそらくあまり問題になりません)。 たとえば、含まれている画像では、分析物の蓄積をフィルタリングして青い線だけを表示できるようにしたいと考えています。 始めるにあたっての助けをいただければ幸いです。 私の目標は、「蓄積」または「枯渇」の出力を持つ列を作成し、データ フィルターに追加するだけです。 前もって感謝します!
列の平均()および他の同様の Col 関数 (Col Min、Col Max など) が役立つ場合があります。 正解を示す 1 列のデータ例を提供していただければ、例を提供することが可能になります。
こんにちは、私が扱っているデータ型の変換/簡略化バージョンを添付しましたので、お役に立てれば幸いです。 Col 関数のことは知っていますが、うまく機能するようにまとめるのに苦労しました
「正解」の欄は設けられていなかったので、推測してみました。 このスクリプトは、最終列の構築に役立つ数式列を作成します。 数式を使用する場合には他のオプションもあります。あるいは、数式だけではなくまったく異なる方法を使用することもできます。
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)))
);

