早上好,
我希望创建一个列,用于计算 MG1 - MG2 的差值(如果标识列中的值相同)。
所以,就是两个黄色值之间的差值,或者两个蓝色值之间的差值。
公式是什么?
真挚地
Capture d'écran 2026-08-26 153209.pngCapture d'écran 2026-08-26 153209.png Screenshot 2026-08-26 153209.png
你好-
看起来你可能有一个批处理过程,按标识进行标记——其中 MG1、MG2 的值在不同的时间被记录,每个值都有自己的一行。
首先要考虑的问题是,你是否想保留这种有这么多缺失条目的行结构。
考虑一个结构,其中每一行代表一个批次。
菜单概要
按标识分组
选择 MG1 和 MG2,使用平均值(忽略缺失值)
如果数据可能不干净,还要包括范围(调查任何非零值)。
这样一来,您将得到一个按批次汇总的表格,这将使计算差异变得更加容易。
Data Table( "SAMPLE" ) << Summary(
Group( :Identification ),
Mean( :MG1 ),
Mean( :MG2 ),
Range( :MG1 ),
Range( :MG2 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column stat" ),
output table name( "Summary of SAMPLE" )
);
如果要在原始数据表中进行操作,可以使用公式列,例如:
Col Mean( :MG1, :Identification ) - Col Mean( :MG2, :Identification )
另一种方法是,仅当 MG1 在该标识下填充,且位于 MG2 所在的特定行时才进行计算。
If( !Is Missing( :MG2 ) & !Is Missing( Col Mean( :MG1, :Identification ) ),
Col Mean( :MG1, :Identification ) - Col Mean( :MG2, :Identification ),
.
)