你好,
我剛剛在表格/摘要中發現了 2 個令人討厭的錯誤。
其中之一甚至可以用於使 JMP 在任何 PC 上崩潰(!!!)
Bug 1) 請閱讀這段程式碼並預測 Jmp 會做什麼:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Summary(
Local Data Filter( Add Filter( columns( :sex ), Where( :sex == "X" ) ) ),
Group( :sex ),
Mean( :height ),
Link to original data table(0),
output table name( "average o students with sex = \!"X\!"" )
);
BigClass 中沒有性別=「X」的學生。所以,我預計該列表為空:
篩選器:性別=“X”/表中無“X”->空匯總表
不幸的是,Jmp 中的邏輯驚人地不同:
如果資料過濾器未找到匹配項,則資料過濾器將重設並顯示所有資料。
對於儀表板, 使用 Jmp Dashboards 篩選異常值 (:alien:) - 如何進行? TS-00046650,不應用限制“只是”令人煩惱 - 對於通過表格/摘要進行自動統計分析,問題更加嚴重:最後,出現錯誤的結果 - 儀表板左側沒有數據過濾器,其中用戶可以檢測並糾正問題。
從 Jmp 17 開始,有一個很酷的新功能:刪除排除的行
不幸的是,有:
錯誤#2:
如果您有 Jmp 17 或 Jmp 18 EA,請嘗試運行此程式碼兩次 -儲存您的數據,Jmp 將崩潰!
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Summary(
Local Data Filter( Add Filter( columns( :sex ), Where( :sex == "F" ) ) ),
Group( :sex ),
Mean( :height ),
Remove Excluded Groups,
Link to original data table(0)
);
// today no females
dt << Select where( :height < 67 ) << Exclude;
第一次運行程式碼後,由於資料過濾器的限制,總表顯示的是女性條目的平均身高。然後程式碼末尾的行排除所有高度 < 67 的行,其中包括所有女性條目。
現在,再次運行程式碼:
有 sex="F" 的行仍然存在,只是被排除了。因此,與 bug #1 相比,此處的資料過濾器不會重置。
它將分析限制為性別=“F”的行。這些行被資料表的資料過濾器排除。
總共沒有符合的非排除行。結果:刪除排除的行有很多事情要做 - 並且會生氣。
氣得Jmp崩潰了。
很明顯,如果沒有匹配的行,用戶將無法從結果中獲益。但在一個很長的腳本中可能會出現這樣的情況:
請平均班級中女學生的身高,這些女學生也符合透過主表應用的一些附加過濾器設定。
下線:
假設我要統計一班的女學生人數,計算她們的平均身高。透過將Jmp/Tables/Summary與資料過濾器結合使用:
- 如果班上沒有女學生,Jmp 將統計男學生並平均他們的年齡(!!!)
- 如果班級中有 >=1 名女學生,但相應的行被排除,Jmp 將崩潰(!!!)
[如果啟用刪除排除行]
@hogi寫道:
對於儀表板, 使用 Jmp Dashboards 篩選異常值 (:alien:) - 如何進行? TS-00046650,不應用限制“只是”令人煩惱 - 對於通過表格/摘要進行自動統計分析,問題更加嚴重:最後,出現錯誤的結果 - 儀表板左側沒有數據過濾器,其中用戶可以檢測並糾正問題。
相同的主題 - >相同的解決方案:
本機資料篩選器:選項:限製或不限制目前數據
我今天收到了 TS 曲目,將進行調查並將發回發現的任何內容。
@hogi
很有意思。
我在 JMP 17 和 18 中複製了您的發現。
我假設您已將此問題提交至 support@jmp.com
第二個錯誤在 JMP18.1 中修復(或之前。我現在才注意到)
第一個錯誤的好解決方法:
:folded_hands: 列屬性:包含值