根据2个分类列和组合数据计算移动平均值我有一个数据集,其中每个OrderId和OrderDate的平均鸡蛋数为Trial(之前,之后)和TrialWeek(1、2、3、4、5)。 我想使用移动平均函数在每个星期末使用前几周的数据计算平均数十次,然后将此数字输入到新列中。 因此,对于具有相同Trial和TrialWeek的每一行,应该重复平均数。
例如:
试用==之前&TrialWeek == 1 = TrialWeek 1的平均数十次
试用==之前&TrialWeek == 1&2 =平均值数十次TrialWeek 2
试用==之前&TrialWeek == 1&2&3 =平均数十次TrialWeek 3,依此类推。
移动平均值希望我输入计算平均值的行数,但是每个TrialWeek的行数都不相同,因此我无法使用固定的行数来计算该行数。 我知道我将需要编写一个公式来执行此操作,但是我对如何编写公式感到困惑。 我正在使用JMP Pro 16。 任何帮助将不胜感激!
脚本编写回复:根据2个分类列和组合数据计算移动平均值这是你想要的?

x = .;
curWeek = :TrialWeek;
If( :Trial == "Before" & :TrialWeek != :TrialWeek[Row() + 1],
x = Col Mean( If( :Trial == "Before" & :TrialWeek <= curWeek, :Dozens, . ) )
);
x;
回复:根据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;