計算結果差異、列平均值等。為什麼使用變數和直接使用字串的計算結果不同?我懷疑使用變數時,變數部分的分組功能可能沒有正常運作。如何解決這個問題?
使用以下公式
Col Mean(
:data,
:A,
:B,
:C_D == "ccccccc"
)
這是公式。
Col Mean(
:data,
:A,
:B,
Column(Eval Insert("C_^get_input_1^" == get_input_2))
)
自動化和腳本編寫回覆:計算結果差異、列平均值等。抱歉,各位。我忘了提這件事。get_input_1和get_input_2可以假定它們已經分別以字串的形式獲得。
回覆:計算結果差異、列平均值等。第一個比較的是列與字串,第二個比較我們無法確定比較的是什麼(字串與字串,結果總是 1 或 0 嗎?)。至少它沒有被計算,你需要將這些值代入公式計算。
使用 Eval Insert、Eval Expr、Parse 和 Substitute 將一個表達式插入到另一個表達式中
回覆:計算結果差異、列平均值等。我想要得到和第一行表達式相同的結果。當變數分別設為 get_input_1="D" 和 get_input_2="cccccc" 時,我自然期望得到相同的結果,但實際情況卻並非如此…
回覆:計算結果差異、列平均值等。Eval(Substitute(
Expr(Col Mean(
:data,
:A,
:B,
_input1_ == _input2_
),
Expr(_input1_) = NameExpr(AsColumn(dt, get_input_1)),
Expr(_input2_) = get_input_2
)
));
但您需要在該範例中新增列和公式。
回覆:計算結果差異、列平均值等。
Column(Eval Insert("C_^get_input_1^" == get_input_2)) 的計算結果為 Column("C_D" == "ccccccc"),因此您的公式將是:
編輯
在 Eval Insert() 中包含非字串實際上會導致它計算結果為空字串。
Col Mean(
:data,
:A,
:B,
Column( "" )
);
這或許就是它沒有如預期運作的原因。 Jarmo 的解決方案應該正是你想要的。
回覆:計算結果差異、列平均值等。
感謝您的回覆。另外,很抱歉回覆晚了。
我編寫瞭如下所示的JSL程式碼,但輸出了一個錯誤。請問可能是什麼原因造成的?
錯誤訊息顯示“參數不足”,位置為“Substitute/ ### /(Expr()”。
Data Table( "data_table" ) << New Column( Eval Insert("Xbar_^get_input_process^_^get_input_line^"),
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Eval(Substitute(
Expr(Col Mean(
:data,
:A,
:B,
_input1_ == _input2_
),
Expr(_input1_) = NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) = get_input_2
)
));
)) << Run Formulas;
回覆:計算結果差異、列平均值等。使用 Eval Insert、Eval Expr、Parse 和 Substitute 將一個表達式插入到另一個表達式中
很可能是類似的問題,但我無法測試,因為我沒有數據,也沒有腳本的前半部分。
Names Default To Here(1);
dt = Data Table("data_table");
Eval(Substitute(
Expr(Data Table("data_table") << New Column(colname,
Numeric,
"Continuous",
Formula(Col Mean(:data, :A, :B, _input1_ == _input2_)),
)),
Expr(colname), Substitute(Xbar_^get_input_process^_^get_input_line^),
Expr(_input1_) = NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) = get_input_2
));
回覆:計算結果差異、列平均值等。感謝您的考慮,儘管在無法提供實際數據的情況下進行實驗很困難。
我根據我的數據表對其進行瞭如下修改。
Names Default To Here(1);
dt = Data Table("data_table");
Eval(Substitute(
Expr(Data Table("data_table") << New Column(colname,
Numeric,
"Continuous",
Formula(Col Mean(:data, :A, :B, _input1_ == _input2_)),
)),
Expr(colname), Eval Insert(Xbar_^get_input_process^_^get_input_line^),
Expr(_input1_) , NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) , get_input_2
));