用於將公式轉換為其結果的 JSL你好,
我有以下jsl代碼
dt << New Column( "I (%)", (:Mean * 100) );
它採用一列(平均值),乘以 100 並使用公式創建一個名為 I(%) 的新列。
我不想要公式,只想要新列中的計算結果。 我怎樣才能做到這一點?
非常感謝。
腳本回复:用於將公式轉換為其結果的 JSL非常感謝。回复:用於將公式轉換為其結果的 JSL謝謝! 非常清楚。回复:用於將公式轉換為其結果的 JSL非常感謝,非常有用。回复:用於將公式轉換為其結果的 JSL這可能有點離題,我可以創建不同的帖子來進一步討論這個問題......
即使文檔是設置每個值的內容(JMP 文檔並不總是恰到好處......) 我覺得這是處理此類案件的最簡單方法。 您可以通過“設置每個值”輕鬆使用複雜的“公式”,而不必擔心以後會刪除公式。 使用 Values() 計算可能會變得有點困難,請參閱我的示例(我絕對不精通 JSL 矩陣,因此很可能有更簡單的方法來完成我在示例中所做的事情)。
帶有公式的示例,設置每個值和值:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//With formulas
newCol = dt << New Column("Formula_simple", Numeric, Continuous, Formula(:height*:weight));
newCol << Delete Formula;
newCol = dt << New Column("Formula_ColMin", Numeric, Continuous, Formula(:height*ColMin(:weight, :sex)));
newCol << Delete Formula;
//With Set Each Value
newCol = dt << New Column("SetEach_simple", Numeric, Continuous, Set Each Value(:height*:weight));
newCol = dt << New Column("SetEach_ColMin", Numeric, Continuous, Set Each Value(:height * ColMin(:weight, :sex)));
//With Values
newCol = dt << New Column("Values_simple", Numeric, Continuous, Values((:height << get values) :*</img> (:weight<< get values)));
newCol = dt << New Column("Values_ColMin", Numeric, Continuous, Values(
Summarize(exg = By(:sex), exm = Min(:weight)); //get min values by group
m_val = J(N Rows(dt),1,1);//matrix for values
height_vec = :height << get values;
For(i = 1, i <= N Items(exg), i++, //loop to "fill" matrix for values
tempRows = Loc(:sex << get as matrix, exg[i]);
m_val[tempRows] = height_vec[tempRows] * exm[i];
);
m_val;
));Set Each Value 在幕後做了什麼,因為它看起來工作得很好? 是否應該更新文檔以包含此行為或為此創建的新功能? 如果要更改“設置每個值”行為,它可能會破壞人們擁有的很多腳本。
回复:用於將公式轉換為其結果的 JSL該行為是記錄的 << 設置每個值消息的預期目的。
回复:用於將公式轉換為其結果的 JSL更酷! 我假設每個值都必須設置為相同的值。
回复:用於將公式轉換為其結果的 JSLHee 是一個使用 Set Each Value 的簡單示例
names default to here(1);
dt=open("$SAMPLE_DATA\big class.jmp");
dt << new column("times100", numeric, continuous, set each value(:height*100));

回复:用於將公式轉換為其結果的 JSL在這種情況下,該消息沒有幫助。 它用於將目標列中的每一行設置為相同的常量值。

回复:用於將公式轉換為其結果的 JSL涼爽的!
回复:用於將公式轉換為其結果的 JSL你根本不需要公式。 我建議在編寫腳本時不要使用列公式,除非您希望值在腳本完成後動態更改。 所以你的案子可以這樣解決:
dt << New Column( "I (%)", Numeric, Continuous, Values( (:Mean << Get Values) * 100) );
回复:用於將公式轉換為其結果的 JSL嘗試使用 <回复:用於將公式轉換為其結果的 JSL
wait(3) 只是為了讓您可以觀看它; <
您也可以使用公式編輯器清除公式以達到相同的效果。
回复:用於將公式轉換為其結果的 JSLNamesDefaultToHere(1);
// Sample table
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Add a formula column
dt << NewColumn("BMI", Numeric, Continuous, Formula(:weight/(:height^2)));
// Make sure the formula is run
dt << runFormulas;
// Wait a little, then remove the formula
Wait(3);
Column(dt, "BMI") << deleteFormula;