我正在寻找一种方法来过滤图表上的数据,以仅包含正在累积或耗尽的数据。 其简单版本是累积 = 最终时间点的浓度 > 初始时间点的浓度(或 < 如果耗尽)。 然而,由于最终时间点并不总是相同,它会变得稍微复杂一些 - 有些数据集可能超过 12 天,有些可能是 14 天,等等。每个时间点实际上是 3 天也是很常见的重复,因此在决定事物是否正在积累或消耗时能够使用这些平均值是理想的(如果不是,它可能不会有多大影响)。 例如,在包含的图像中,我希望能够过滤并仅显示用于累积分析物的蓝线。 任何入门帮助将不胜感激! 我的目标是有一列输出为“累积”或“耗尽”,这样它就可以添加到数据过滤器中。 提前致谢!
列平均值()和其他类似的 Col 函数(Col Min、Col Max,...)可能会有所帮助。 如果您可以提供示例数据,其中一列指示正确答案,则可以提供示例。
您好,我附上了我正在使用的数据类型的转换/简化版本,如果有帮助的话。 我知道 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)))
);

