根據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;