如何使用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])));
));
);