數據過濾器:如何指定限制在數據過濾器中,用戶受限於可以輸入哪些值作為限制。
如果鍵入的限制超出可用數據點的範圍,該值將自動替換為最小值或最大值。
用戶可以更改 JSL 代碼 - 但當圖形打開時,值將再次設置回最小值和最大值。
a) 是否存在如何輸入任何數字的隱藏技巧?輪班輸入沒有工作
b) 是否有技巧可以生成具有用戶定義的過濾器規範的儀表板 - 保持原樣?

數據探索和可視化回复:數據過濾器:如何指定限制@hogi我的技術支持團隊中的某個人應該提供他們對問題 a) 的評估,感謝您發送電子郵件至支持@jmp.com (日期為 06/16/23)關於問題 a),但對於問題二) “是否有技巧可以生成具有用戶定義的過濾器規格的儀表板 - 保持原樣?”
在定義它們之後,這些規範似乎對我來說仍然存在。您能否通過示例提供更多信息來描述您所看到的內容?
回复:數據過濾器:如何指定限制要生成具有超出當前數據范圍的過濾器的儀表板,我生成了一個具有較低規格 = 1 的 GraphBuilder 圖,通過
Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Conditional,
Add Filter( columns( :height ), Where( :height >= 1 ) )
)
)
結果看起來並不樂觀:

然後我將它添加到儀表板

並檢查了代碼 - 事實上 - Jmp 確實調整了我的規範:

我將限制重新設置為 1,並使用代碼生成了一個新的儀表板,再次檢查代碼,結果又是 51。
回复:數據過濾器:如何指定限制然後我添加了一個高度為 1 的假行,這允許我定義一個具有較低規格 = 1 的數據過濾器:

但是一旦我刪除了該行,數據過濾器就再次更改為 51 ...
規格超出當前數據范圍的數據過濾器似乎是一個非常脆弱的對象。
到目前為止,我生成了儀表板,將它們保存為表格腳本,在幾週內加載了新數據,優化了儀表板,再次將它們保存為表格腳本......
如果數據過濾器動態調整到當前數據范圍,則很危險。
回复:數據過濾器:如何指定限制@hogi - 在 JMP 17 中,如果您不修改最小/最大值之一:

它們沒有出現在腳本中:
Bivariate(
Y( :weight ),
X( :height ),
Fit Line( {Line Color( {212, 73, 88} )} ),
Local Data Filter( Add Filter( columns( :height ), Where( :height <= 65 ) ) )
);
當您有不斷變化的數據並且需要單邊限制時,這會有所幫助。但是,如果您修改這兩個值,然後將它們拖回極值點,則這兩個值都將出現在腳本中。我建議您在執行此操作後可以“清除”過濾器項,這將導致不生成 Where() 子句。不幸的是,Where() 子句的存在是告訴我們過濾條件是否已設置的指示符,這就是為什麼您在顯示的場景中看到這兩個值的原因。
回复:數據過濾器:如何指定限制@hogi - 感謝上下文 - 數據清理通常在分析之外執行,但是將這些條件構建到過濾器中的一種方法是定義一個包含要刪除的條件的轉換列。這使您能夠使用任意 Where() 子句作為布爾條件:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Graph Builder(
Transform Column(
"Invalid Data",
Nominal,
Formula( :age > 18 | Starts With( :name, "Teacher" ) )
),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Conditional,
Add Filter(
columns( :age, :Invalid Data ),
Where( :Invalid Data == 0 ),
Display( :age, N Items( 6 ) )
)
)
);
這確實假設您沒有包含所有無效數據的表。另一種方法是將 LDF 與全局數據過濾器結合使用,以從所有報告中刪除無效數據。全局行狀態將與每個平台中使用的過濾條件相結合。
回复:數據過濾器:如何指定限制謝謝@danschikore ,多麼優雅的解決方法:)
唯一會失敗的情況:如果有一個數據集沒有有效的數據,即沒有數據
Where( :Invalid Data == 0 )
但無論如何,沒有人敢保存儀表板:)
回复:數據過濾器:如何指定限制謝謝@danschikore為了解釋。
當我發布問題時,我沒有考慮打開過濾器的一側。
這個想法是:
如果我希望數據過濾器自動刪除不良數據點(<0)或其他一些定義明確的數據(缺失數據、指標條目),此類數據必須位於當前數據集中 - 否則數據過濾器將自動適應。
在這種情況下,我想刪除名稱為“reference”且缺少名稱的所有行:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Data Table( "Big Class" ):name << Set Modeling Type( "Multiple Response" );
Graph Builder(
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Add Filter(
columns( :name ),
Match None( Where( :name == "reference","" ) ),
Display( :name, Find( Set Text( "" ) ) )
)
)
);
但如果當前數據集中不存在這樣的行,則數據過濾器將被忽略 - 用戶在保存當前版本的圖表或儀表板時將丟失這部分。只需運行代碼並保存生成的腳本即可。
下次用戶打開圖表時,將默認顯示缺少名稱和“參考”數據的行,用戶必須手動排除它們。
一旦選擇這個選項,這個問題就會變得更加嚴重不是可用於更多建模類型:
數據過濾器,新選項:“不”
回覆:資料過濾器:如何指定限制:folded_hands: 列屬性:包含值(又稱強制值)將解決此問題。