从某些行中获取列平均值 - 然后在新列中填充平均值我想计算一列平均值,条件是它仅包含具有特定 ID 的行。在这种情况下,我只想对空白数据求平均值。我希望输出填充到新列中。结果将如下所示:

我知道如何使用表格>摘要应用程序来实现这一点,但我不知道如何在我的数据表中做到这一点并让它向下填充。谢谢你的帮助!
数据混合和清理回复:从某些行中获取列平均值 - 然后在新列中填充平均值请多加注意 - Col 聚合如下
Col Mean(If(:Sample ID == "Blank", :Data, .))
由于 if 表达式中的字符比较,速度非常 (!!!) 慢。
对于几千行来说这是没问题的,但对于具有数百万行的表来说,这将花费大量时间。
更好:添加一个将字符列(:Sample ID)映射到数字值的虚拟列,并在 if 表达式中使用数字列-> 速度提高几个数量级!
技巧和窍门 - JMP/JSL 的最佳实践
回复:从某些行中获取列平均值 - 然后在新列中填充平均值您只需添加我提供的内容作为新公式列即可,之后 JMP 可以非常轻松地为您编写脚本。
它看起来像这样
Names Default To Here(1);
Current Data Table() << New Column("Blank Average", Numeric, Continuous, Formula(
Col Mean(If(:Sample ID == "Blank", :Data, .))
));回复:从某些行中获取列平均值 - 然后在新列中填充平均值感谢您的回复。我需要将计算出的列平均值填充到新列中。这是我在玩 chatgpt 时使用的脚本,但它不起作用。
// Assuming your data table is already open
dt = Current Data Table();
// Calculate the mean of the "Data" column where "Sample ID" is "Blank"
meanValue = Col Mean(If(:Sample ID == "Blank", :Data, Missing()));
// Create a new column for the Blank Average
dt << New Column("Blank Average", Numeric, Continuous);
// Populate the "Blank Average" column with the calculated mean for all rows
dt << Set Values(:Blank Average, meanValue);回复:从某些行中获取列平均值 - 然后在新列中填充平均值您可以使用 Summary 并使用 Join/Update 将其添加到原始表中。或者您可以使用公式。其中一个公式是
Col Mean(If(:Sample ID == "Blank", :Data, .))