For 迴圈使用移動平均公式建立列我對 jmp 很陌生,試圖從電子表格轉向大數據集。我正在嘗試創建一系列列來計算資料列 (xV-C) 的不同移動平均值。我的大部分程式碼都用於建立列,但每個建立的列的公式使用 for 迴圈變數 (j),而不是每列的 for 迴圈值 (10, 11, 12...) 。我想我需要用 Eval 和 Parse 做一些事情,但我不明白。這是我到目前為止所擁有的:
對於(j=10,j<=12,j++,
新欄位("xF-C MA " || Char(j),數值,公式(Col 移動平均值(:"xV-C"n, 1, j-1 )))
);
我確信這對某人來說是一件容易的事!我很感激你的幫忙!
自動化和腳本編寫視窗回覆:For 迴圈使用移動平均公式建立列歡迎來到社區
透過在公式中指定變數「J」並在 JSL 中變更其值,包含該變數的欄位將隨著「J」值的變化而變化。為了修正這個問題,需要計算變數“J”的值,因為公式被指定給 JMP。
Eval(EvalExpr()) 將在 JMP 解析程式碼之前強制執行評估
試試這個
For( j = 10, j <= 12, j++,
Eval(
Eval Expr(
New Column( "xF-C MA x " || Char( j ),
Numeric,
Formula( Col Moving Average( :"xV-C"n, 1, Expr( j - 1 ) ) )
)
)
)
);
回覆:For 迴圈使用移動平均公式建立列我喜歡使用 Eval+EvalExpr,但還有一個更好的選擇 Eval+Substitute,它有時更容易閱讀(並非總是如此!)。在你的情況下,它可能看起來像這樣
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
For(j = 10, j <= 12, j++,
Eval(Substitute(
Expr(
dt << New Column("height " || Char(j), Numeric, Formula(Col Moving Average(:height, 1, _lag_)))
),
Expr(_lag_), j - 1
));
);
與此主題相關的好(舊)帖子使用 Eval Insert、Eval Expr、Parse 和 Substitute 將一個表達式插入到另一個表達式中
回覆:For 迴圈使用移動平均公式建立列完美的!謝謝你!