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 -> 再次應用。 您還可以嘗試當前數據表() << 重新運行公式。