回复:使用Where()過濾分析創建新的鏈接私有數據表平台對Where()和By()有共同的處理,兩者都創建子集表來實現功能。我不確定是否有關於實施的詳細程度的文檔。
與通過過濾器進行行狀態操作相比,該子集可以提供有用的區別。此示例顯示,當您將模型擬合到子集時,JMP 將避免將該模型應用於不屬於子集的行。如果您對過濾器執行相同的操作,則該模型將應用於所有行。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate( Y( :weight ), X( :height ), Fit Line( {Line Color( {212, 73, 88} )} ), By(:sex) );
biv[1] << (Curve[1] << Save Predicteds);
biv2 = dt << Bivariate(
Y( :weight ),
X( :height ),
Fit Line( {Line Color( {212, 73, 88} )} ),
Local Data Filter(
Auto clear( 1 ),
Grouped by AND( 1 ),
Show Histograms and Bars( 0 ),
Add Filter( columns( :sex ), Where( :sex == "F" ) )
)
);
biv2 << (Curve[1] << Save Predicteds);
您是否要使用此類子集可能取決於您正在進行的分析的具體情況。
-擔
使用Where()過濾分析創建新的鏈接私有數據表通常我不在乎 JMP (JSL) 何時做一些我不希望它做的事情,因為大多數時候它都能正常工作,這是我唯一關心的事情......但今天我想出了一些“有趣”的東西。 如果您使用Where()來過濾您的分析,您最終將得到鏈接到您的數據表的私有數據表(名稱相當奇怪,在本例中為“Big Class,where -sex == -F-”)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
gb1 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3)))
),
gb2 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3))),
Where(:sex == "F")
)
)
);
Show(gb1 << Get Data Table);
Show(gb2 << Get Data Table);
/*
dt_private = gb2 << Get Data Table;
dt_private << New Data View;
*/
所以我對這種行為確實有幾個疑問:
- 當我像這樣使用Where()來過濾分析時(不僅僅是在圖形生成器中),這種情況是否總是發生?
- 這有記錄在某處嗎?
- 在 JMP 中是否有更多這樣的交互,您創建一些隱藏的東西,然後您可能會遇到這樣的情況(對我來說,這導致我的一個函數出現問題,因為我使用 << Get Data Table 來獲取數據表的引用,但得到了錯誤的一個,簡單的修復是將表引用添加到函數作為參數
- 我應該像這樣進行過濾嗎?
編輯:
添加一些至少部分與此相關的幫助頁面
自動化和腳本編寫