如何计算包含缺失数据的组中各行之间的平均值(以前瞻性格式)?我遇到了一个问题,我的时间轴上有两组数据点。一组是“温度(摄氏度)”数据,在每个时间点都采集;另一组是“残余葡萄糖(g/L)”数据,采集时间不固定。当这两组数据放在同一个数据表中时,其中一列在该时间段内缺少数据。我附上了一个数据表作为示例,但大致结构如下:

我需要计算“残余葡萄糖 (g/L)”列中包含数据的行之间“温度 (摄氏度)”列的平均值。需要注意的是,这个平均值必须是向前计算的。例如,在第 1 行,结果应该是“32”。在第 7 行,结果应该是 [第 2 行,第 7 行] 内所有值的平均值,即“32.1”。结果应该显示在绿色高亮显示的单元格中。
我目前是通过创建一个辅助列,然后排序并制表来实现的,但这非常耗时。由于我的表格数据不断增加,我希望能够找到一种自动化的方法。非常感谢您的帮助和指导!
自动化和脚本编写基础数据分析与建模内容组织数据访问回复:如何计算前瞻性数据格式中缺失数据组的行均值?如果你已经手动完成了这项工作,那么你可以很容易地创建工作流程来实现自动化。
这里有一个公式,或许能满足你的需求(我建议把它分成几个部分,这样更容易理解)。
If(!IsMissing(:"Residual Glucose (g/L)"n),
Col Mean(
:"Temperature (Celsius)"n,
Col Cumulative Sum(
!Is Missing(Lag(:"Residual Glucose (g/L)"n)) & Is Missing(:"Residual Glucose (g/L)"n),
:Batch ID
),
:Batch ID
)
,
.
);
回复:如何计算前瞻性数据格式中缺失数据组的行均值?您可以创建一个新列,添加一个分组列,该列为每个非残留糖值行具有不同的分组值。

以下是计算分组变量的公式
As Constant( x = 0 );
If( Is Missing( :"Residual Glucose (g/L)"n ) == 0,
x
++);
If( Is Missing( :"Residual Glucose (g/L)"n ) == 1,
x
);
然后使用列均值函数,您可以获得所需的均值。

以下是组均值计算公式
If( Is Missing( :group ) == 0,
Col Mean( :"Temperature (Celsius)"n, :group )
)
回复:如何计算前瞻性数据格式中缺失数据组的行均值?正是我想要的!!非常感谢 