Col Median(实际上:替补)-出了什么问题?我不明白这个文件有什么问题。
相对高度和高度相对 2具有完全相同的公式。
但在高度相对 2值丢失。
在保存文件之前,公式编辑器抱怨公式中的参数太少中线功能。
通过双击公式编辑器,然后单击“确定”、“确定”、“确定”关闭所有窗口,可以使公式编辑器相信一切正常。
保存文件后,这是不可能的。 我没有找到恢复公式的方法。
如果您复制并粘贴该列,复制没问题。
数据混合和清理回复:Col Median - 出了什么问题?相关社区讨论:
动态创建的公式不计算
回复:Col Median - 出了什么问题?只是为了增加一点额外的神秘感,似乎只有一个替换函数需要包含“()”,因此下面的两个公式都可以工作。
编辑:经过进一步挖掘,JMP 似乎只能容忍在替换中没有“()”的情况下传递的表达式中的 1 个函数。 底部还有另外三个公式,我在现有表达式周围包裹了另一个函数,并且它将与用括号替换的任何两个函数一起正常工作。 我怀疑 JMP 有一个内部通道来对表达式进行推断,以使其合法,并且它只会进行一次调整,然后中断。
myFormula3 = Expr(__myHead__( :height, __aggregation__( :height ) ));
Substitute Into( myFormula3,
Expr( __myHead__ ), Expr( Divide() ),
Expr( __aggregation__ ),Expr( Col Median )
);
myFormula4 = Expr(__myHead__( :height, __aggregation__( :height ) ));
Substitute Into( myFormula4,
Expr( __myHead__ ), Expr( Divide ),
Expr( __aggregation__ ),Expr( Col Median() )
);
myFormula5 = Expr(__top__(__myHead__( :height, __aggregation__( :height ) )));
Substitute Into( myFormula5,
Expr(__top__), Expr(Log),
Expr( __myHead__ ), Expr( Divide),
Expr( __aggregation__ ),Expr( Col Median )
);
myFormula6 = Expr(__top__(__myHead__( :height, __aggregation__( :height ) )));
Substitute Into( myFormula6,
Expr(__top__), Expr(Log()),
Expr( __myHead__ ), Expr( Divide()),
Expr( __aggregation__ ),Expr( Col Median )
);
myFormula7 = Expr(__top__(__myHead__( :height, __aggregation__( :height ) )));
Substitute Into( myFormula7,
Expr(__top__), Expr(Log()),
Expr( __myHead__ ), Expr( Divide),
Expr( __aggregation__ ),Expr( Col Median() )
);
回复:Col Median - 出了什么问题?我不知道有任何网络研讨会涵盖该问题(甚至没有讨论此问题),但强制 JMP 再次解析该表达式是一个聪明的解决方法。 我真的很感动@jthi在替换中包含 () 的最新解决方案,我不会猜测这会起作用,但它似乎有助于 JMP 认识到您正在传递一个函数并处理其余部分。 令人惊讶且有趣的解决方案解决了一个神秘而令人困惑的问题!
回复:Col Median - 出了什么问题?哇,重要发现!
老实说,我不知道必须使用括号 - 我什至不敢打赌它会起作用。
非常感谢,我一定会为这篇文章添加一个书签到我的提示和技巧列表:)
回复:Col Median - 出了什么问题?我认为问题不在于替代品,而在于其他东西。 也许 JMP 不明白 Col Median 在这种情况下应该起作用,因为替换有点奇怪(括号丢失)。 这是最有可能的“正确”方法(注意()后划分和上校中位数)。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
myFormula3 = Expr(__myHead__(:height, __aggregation__(:height)));
Substitute Into(myFormula3, Expr(__myHead__), Expr(Divide()), Expr(__aggregation__), Expr(Col Median()));
show(Name Expr(myFormula3));
new_col1 = Eval(
Substitute(
Expr(New Column("new3", Formula(__f__))),
Expr(__f__), Name Expr(myFormula3)
)
);
回复:Col Median - 出了什么问题?我担心我需要一些嵌套的 If 语句和多次相同的代码才能使其工作。
非常酷的“肮脏”解决方法 - 谢谢;)
...我希望有人不需要它:
修复替换中的错误
编辑:不需要
@朱利安:是否有一个网络研讨会可以解释为什么上面的代码只适用于解析(字符))?
回复:Col Median - 出了什么问题?我在工作早期已经“解决”了此类问题,但我不再记得它是如何以及为何发生的。 也没有将其记录到我的提示和技巧列表中,因此无法轻松找到推理和解决方案。 如果像这样构建时第二个表达式位于其他表达式内,则它似乎会被卡住。
一种解决方法:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
myFormula3 = Expr(__myHead__(:height, __aggregation__(:height)));
Substitute Into(myFormula3, Expr(__myHead__), Expr(Divide), Expr(__aggregation__), Expr(Col Median));
myFormula4 = Expr(__myHead__(:height, __aggregation__(:height)));
Substitute Into(myFormula4, Expr(__myHead__), Expr(Divide));
Substitute Into(myFormula4, Expr(__aggregation__), Expr(Col Median));
Show(Name Expr(myFormula3));
Show(Name Expr(myFormula4));
new_col = Eval(
Substitute(
Expr(New Column("new3", Formula(__f__))),
Expr(__f__), Parse(Char(Name Expr(myFormula3)))
)
);
回复:Col Median - 出了什么问题?这些有什么问题:
myFormula3 = Expr(__myHead__( :height, __aggregation__( :height ) ));
Substitute Into( myFormula3,
Expr( __myHead__ ), Expr( Divide ),
Expr( __aggregation__ ),Expr( Col Median )
);
myFormula4 = Expr(__myHead__( :height, __aggregation__( :height ) ));
Substitute Into( myFormula4,Expr( __myHead__ ), Expr( Divide ));
Substitute Into( myFormula4,Expr( __aggregation__ ),Expr( Col Median ));
?
回复:Col Median - 出了什么问题?非常感谢 - 解决我的问题的 3 种方法:)
仅仅通过“确定”它不起作用。
深入挖掘 - 为什么会发生......
有没有理由我的方程式3 (替换为头和聚合) 和我的方程式4 (随后替换为头和聚合)不起作用?我的一级方程式赛车和我的方程式2 (仅替换两者之一)做。
(对于 Jmp 也是如此16.2和 Jmp 17)
名称 Expr(myFormulax)看起来完全一样:
名称 Expr(myFormula1) = Divide(:height, Col Median(:height));
名称 Expr(myFormula2) = :height / Col Median(:height);
名称 Expr(myFormula3) = Divide(:height, Col Median(:height));
名称 Expr(myFormula4) = Divide(:height, Col Median(:height));
不幸的是,在保存并重新打开文件之前,上述 3 个解决方案都不起作用:(
如果有的话就好了当前数据表() << 重新运行公式;可以解决问题。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
myFormula1 = Expr(__myHead__( :height,Col Median( :height ) ));
Substitute Into( myFormula1,
Expr( __myHead__ ), Expr( Divide ),
);
myFormula2 = Expr(Divide( :height, __aggregation__( :height ) ));
Substitute Into( myFormula2,
Expr( __aggregation__ ),Expr( Col Median )
);
myFormula3 = Expr(__myHead__( :height, __aggregation__( :height ) ));
Substitute Into( myFormula3,
Expr( __myHead__ ), Expr( Divide ),
Expr( __aggregation__ ),Expr( Col Median )
);
myFormula4 = Expr(__myHead__( :height, __aggregation__( :height ) ));
Substitute Into( myFormula4,Expr( __myHead__ ), Expr( Divide ));
Substitute Into( myFormula4,Expr( __aggregation__ ),Expr( Col Median ));
Show( Name Expr( myFormula1 ) );
Show( Name Expr( myFormula2 ) );
Show( Name Expr( myFormula3 ) );
Show( Name Expr( myFormula4 ) );
Eval( Substitute( Expr( New Column( "new1", Formula( __f__ ) ) ), Expr( __f__ ), Name Expr( myFormula1 ) ) );
Eval( Substitute( Expr( New Column( "new2", Formula( __f__ ) ) ), Expr( __f__ ), Name Expr( myFormula2 ) ) );
Eval( Substitute( Expr( New Column( "new3", Formula( __f__ ) ) ), Expr( __f__ ), Name Expr( myFormula3 ) ) );
Eval( Substitute( Expr( New Column( "new4", Formula( __f__ ) ) ), Expr( __f__ ), Name Expr( myFormula4 ) ) );
回复:Col Median - 出了什么问题?尝试返回公式编辑器并按“应用”。 或者选中 Suppress Eval -> Apply -> 取消选中 Suppress Eval -> 再次应用。 您还可以尝试当前数据表() << 重新运行公式。