你好,
我使用以下腳本創建了一組帶有 for 循環的列
For(i=1, i<= N Items(abs_cols), i++,
Eval(
Substitute(
Expr(
New Column(__name2__,
Formula(
If(__zscore__ < 2, __abs__)
)
)
),
Expr(__name2__), "Outliers Removed " || char(abs_cols[i]),
Expr(__zscore__), Column("Z-score " || char(abs_cols[i])),
Expr(__abs__), Column(char(abs_cols[i]))
)
)
);當我運行這個腳本時,列是用正確的公式創建的,但任何新列中都沒有填充任何值。 更令人費解的是,數據預覽顯示的值與我希望填充的值完全一樣。

我不確定發生了什麼,請幫忙?
最後,根據我的經驗,它必須執行函數 Column() 不能很好地處理列公式。相反,您可以像這樣嘗試“As Column”:
Names default to here(1);
dt = Open("$Sample_data/iris.jmp");
New Column("Z-scoreSepal length", Numeric, "Continuous", Format("Best", 12), Formula(Random Normal()));
New Column("Z-scoreSepal width", Numeric, "Continuous", Format("Best", 12), Formula(Random Normal()));
abs_cols = {:Sepal length, :Sepal width};
For(i=1, i<= N Items(abs_cols), i++,
Eval(
Substitute(
Expr(
New Column(__name2__,
Formula(
If(As Column(__zscore__) < 2, As Column(__abs__))
)
)
),
Expr(__name2__), char(abs_cols[i]),
Expr(__zscore__), "Z-score " || char(abs_cols[i]),
Expr(__abs__), char(abs_cols[i])
)
)
);