如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?通過分區模型訓練的具有缺失值的數據的缺失公式,如何將JSL轉換為可在JMP公式中使用的形式。
ab>=-14&P1>=174.1&EVk<34341 or Missing&xyz<214.98 or Missing&EVk<154 or Missing&P1>=1741
進入
:ab >= -14 & :P1 >= 1741 & (:EVk < 154 | Is Missing( :EVk )) & (:xyz < 214.98 | Is Missing( :xyz ))
謝謝!
腳本編寫回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?“ AB”,“ P1”和“ EVk”在此是多次分區。如何僅保留有效參數?
以及如何自動轉彎
“ EVk <154或丟失”
進入
“:EVk <154 |是否缺少(:EVk)”?
回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?因此,如果保存擬合的分區模型,則它是一個列公式。
回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?選擇分區模型後,只需將預測公式另存為列公式即可。
回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?感謝markbailey!
但是我試圖複製葉子標籤公式並將其作為普通公式進行計算,這是錯誤的。
例如:
dt<<NEW column="">=-14&:P1>=1741&:xyz<214.98 or Missing&:EVk<154 or Missing));dt<<RUN formulas=""></RUN></NEW>
回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?是的,該代碼是錯誤的。該代碼不是保存為葉標籤公式的代碼。您錯誤地從公式中復制了所需的內容,並將錯誤的代碼粘貼到了腳本中。
下面是一個示例,該示例逐字複製了葉子標籤的已保存公式並將其粘貼為新列的Formula()參數的參數:
Names Default To Here( 1 );
// open an example
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// create a new column for character data and populate it with formula based on a
// previously saved formula for leaf labels.
dt << New Column( "Text",
Character,
Formula(
If( !Is Missing( :height ) & :height >= 63,
If( !Is Missing( :height ) & :height >= 67,
"height>=63&height>=67",
"height>=63&height<67"
),
"height<63"
)
)
);回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?是的。我也知道可以直接使用“預測公式”。但是此預測公式如此之大,如此龐大,如此復雜,以至於在其他文件中使用它都不方便。
“葉標籤公式”是準確的,但是不能直接使用由“分區”模型自動生成的葉標籤公式。
因此,我使用VBA將這些葉標籤公式轉移到Excel,以自動將它們轉換為可在JMP公式中使用的形式。
但是這種操作會佔用整個操作過程,不能完全自動化。
感謝markbailey!
回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?因此,我想知道如何使用JSL將這些葉子標籤公式轉換為JMP Formula()形式的可用形式。回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?我認為我們很困惑,因為“葉子標籤公式”列後面已經有一個公式。您無需進行任何轉換。您能否更清楚地說明您要執行的步驟?

回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?當然,葉標籤公式列的文本不能以這種方式直接計算。

回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?謝謝杰夫!
由於我得到了原始文件中未使用的這些葉標籤公式。
因此,我只是從葉子標籤公式列中刪除了該公式,只得到了文本,然後將不同葉子標籤公式的文本集中到一個文件中。
這些文本葉子標籤公式然後用於使用JSL計算其他數據,因此我遇到了轉換問題。
回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?您是說有人已經進行了分析並且無法再复制原始模型,現在您正嘗試從導出到excel的數據中重新創建公式?如果可能的話,在JMP中再次構建相同的模型,然後直接導出公式列會容易得多。 展望未來,對於創建的任何新模型,我將始終導出該葉子列,因此您無需再次處理。 如果您確實需要重新創建公式,而不能在引用excel文件時僅用“蠻力”將其鍵入(我猜想這對不熟悉腳本的人最快,除非您有100多個術語),那麼您可以使用替代(簡單)或正則表達式(複雜)公式,以將原始文本轉換為公式。 這聽起來很痛苦,我想每個人都在說要避免這種情況。
或者,您是否正在嘗試為每個可能的葉子創建一組列,並使用true / false值指示每個葉子中的該行?在這種情況下,我仍將保存葉子公式,然後使用公式創建新列,以檢查葉子標籤是否與文本字符串匹配。
回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?
是的,我仍然沒有找到這些葉標籤公式,這些葉標籤公式是通過使用JSL將不同文件自動劃分為一個文件並以公式形式保存而獲得的。如果刪除X因子,它將刪除公式。
謝謝!
回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?現在我很困惑。 您能否告訴我們您要達到的目標,包括期望結果表中的哪些列,以及達到目標所需的步驟?
回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?按下面的JSL獲取非重複葉子標籤公式文件T1。
如何將T1的每個葉標籤公式的特定內容逐行提取到T1文件的公式“ Formula1”中?
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt[30 :: 35, "height"] = "";
p = Partition( Y( :weight ), X( :age, :sex, :height ), Validation Portion( 0.3 ), Informative Missing( 1 ), split Best( 2 ) );
p << save leaf label formula;
p << Close Window;
Wait( 0 );
dt << Sort( By( 6 ), Order( Descending ), replacetable( 1 ) );
dt << Select Where( :Leaf Label Formula != Lag( :Leaf Label Formula, -1 ) );
d3 = dt << Subset( Output Table( "T1" ), Selected Rows( 1 ), selected columns( 0 ) );
Wait( 0 );

回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?只需獲取“ T1”表中“葉標籤公式”列的文本,即可獲得相應的公式表格。
不需要全局公式。
謝謝!
回复:如何使用JSL將決策樹分區葉標籤公式轉換為可以在JMP公式中使用的形式?這些選項之一可以工作嗎?一世認為他們完成您想要的:
//For each row (leaf of partition) create a new formula column
//indicating whether that row is in that leaf
for(r=1, r<= n row(d3), r++,
Eval(Eval Expr(
d3 << New Column("Is Leaf " || d3:Leaf Label Formula[r], Numeric, "Continuous", Format("Best", 12), Formula(:Leaf Label Formula == Expr(d3:Leaf Label Formula[r])));
));
);
//Or if you want it all in one column (slower if multiple columns):
for(r=1, r<= n row(d3), r++,
Eval(Eval Expr(
d3 << New Column("Alt Is Leaf " || d3:Leaf Label Formula[r], Numeric, "Continuous", Format("Best", 12), Formula(Expr(dt:Leaf Label Formula << Get Formula) == Expr(d3:Leaf Label Formula[r])));
));
);