根据 2 个分类列和组合数据计算移动平均值我有一个数据集,其中每个 OrderId 和 OrderDate 平均有几十个鸡蛋,用于试用(之前、之后)和 TrialWeek(1、2、3、4、5)。我想使用移动平均函数来计算每周结束时的平均值,使用前几周的数据,然后将该数字输入到新列中。因此,对于具有相同 Trial 和 TrialWeek 的每一行,应该有数十个重复的平均值。
例如:
试用 == 之前 & 试用周 == 1 = 试用周 1 的平均数十次
试用 == 之前 & 试用周 == 1 & 2 = 平均数十次试用周 2
试用 == 之前 & 试用周 == 1 & 2 & 3 = 平均几十个试用周 3,依此类推。
移动平均线要求我输入计算平均值的行数,但是每个 TrialWeek 的行数并不相同,因此我无法使用固定的行数来计算此值。我知道我需要编写一个公式来执行此操作,但我不知道如何编写公式。我正在使用 JMP Pro 16。任何帮助将不胜感激!
质量和工艺工程回复:根据 2 个分类列和组合数据计算移动平均值谢谢@txnelson !
我已经调整了代码以计算 Trial == After 的移动平均值,所以这似乎有效。 但是我注意到代码没有计算 TrialWeek == 1 的移动平均值,除非我对表进行了排序。
x = .;
curWeek = :TrialWeek;
If(
:Trial == "Before" & :TrialWeek != :TrialWeek[Row() + 1], x = Col Mean( If( :Trial == "Before" & :TrialWeek <= curWeek, :Dozens, . ) ),
:Trial == "After" & :TrialWeek != :TrialWeek[Row() + 1], x = Col Mean( If( :Trial == "After" & :TrialWeek <= curWeek, :Dozens, . ) )
);
x;
回复:根据 2 个分类列和组合数据计算移动平均值这是你想要的?

x = .;
curWeek = :TrialWeek;
If( :Trial == "Before" & :TrialWeek != :TrialWeek[Row() + 1],
x = Col Mean( If( :Trial == "Before" & :TrialWeek <= curWeek, :Dozens, . ) )
);
x;