按类别进行迭代的Col公式嗨,
我有一个数据集,其中包含一个实验的测量结果,该实验测量从高浓度样品到化学分析仪上随后的低浓度样品的分析物残留。我在不同的设备和不同的试剂上进行实验,每个组合进行三次重复运行。
为了计算遗留水平,我首先对每个设备 - 试剂组合进行10次基线测量。
我想制作一个新的列,其中包含相应设备 - 试剂组合的10个基线测量值的平均值。附加的是数据表,其中所需的列在“平均值(基线)”列中手动填充。
我还想要一个新的列,它可以获取高样本的测量结果(col“样本”中的“H”),并为后面的10个低样本填充此值。再次,见附件。
我对如何将col公式硬编码为设备名称和样本名称有所了解,但我想迭代地进行,因为真实的数据集更大。
Re:按类别迭代的Col公式我附加了一个数据表,其中包含两个新列,用于计算平均值(基线)和H样本。 我将它们作为两个新列添加到您附加的数据表中。 除非您没有正确指定您的要求,否则我发现您的手动计算的平均值(基线)值对于试剂/设备基线均值是不正确的。 它们似乎是先前试剂/设备分组的基线值的平均值。
这是我使用的公式
平均(基线)
x = Col Mean( If( :Sample == "Baseline", :Measurement, . ), :Reagent, :Device );
If( :Sample == "Baseline",
x = .
);
x;
H样本
x = Col Max( :Measurement, :Reagent, :Device );
If( :Sample == "Baseline",
x = .
);
x;
Re:按类别迭代的Col公式你好 @olekh ,
如果对数据进行排序,使得基线测量总是在另一次运行之前(在样本/设备/试剂组中),这就是您在此处所拥有的,以下是一个这样的列公式,它们将执行此操作:
If( :Sample == "Baseline",
Col Mean( :Measurement, :Reagent, :Sample, :Device ),
Lag( :Name( "Mean(Baseline) Formula" ), 1 )
)
我也在这里附上了公式。但是,我有点困惑,我得到的手段与你的硬编码手段不符。我通过单独计算基线平均值来手动检查,但它们与您所拥有的不匹配。您计算的方法是否可能不正确?或许,我误解了你的数据结构。
@julian
Re:按类别迭代的Col公式谢谢,这是完美的!当然,你对这些方法是正确的。Re:按类别迭代的Col公式是的,你的意思是对的。看起来我有点急于将值传递给示例集。谢谢你的解决方案!