如何使用具有 1000 個 ID 的單獨資料集來篩選資料集(子查詢、腳本)我有一個包含數百萬行的“大”數據集。 每行都有一個特定的 IDENT 欄位。 IDENT 可能會發生多次。 我有另一個較小的資料集“SMALL”,其中僅包含數百行。 每行還有一個特定的 IDENT 欄位。
現在我只想保留 BIG 中的所有行,這些行在 SMALL 中具有相同的 IDENT。 換句話說:如何使用 IDENT 欄位從 SMALL 中過濾 BIG。 使用 SAS SQL,這很容易,例如
過程 SQL ;
建立已篩選的表
作為從 BIG 選擇 *
其中 IDENT 中(從 SMALL 中選擇 IDENT);
辭職 ;
我可以在 JMP 中執行類似操作嗎?
親切的問候
新手
回覆:如何使用具有 1000 個 ID 的單獨資料集來篩選資料集(子查詢、腳本)在 JSL 腳本中,它看起來像這樣:
data table ("Big") << join (with(data table("Small")),
by matching columns (::ID=:ID),
drop mutiples (0,0),
include nonmatches(0,0),
preserve main table order(1)) ;
小心可能的小錯字...
回覆:如何使用具有 1000 個 ID 的單獨資料集來篩選資料集(子查詢、腳本)如果您以互動方式執行聯接,則可以前往剛剛建立的資料表,以滑鼠右鍵按一下資料表左邊緣表面板中綠色三角形旁的「來源」項,然後選擇「編輯」。它將向您顯示用於建立連接資料表的 JSL。
回覆:如何使用具有 1000 個 ID 的單獨資料集來篩選資料集(子查詢、腳本)我感謝您的努力,但我對腳本答案感興趣,而不是互動式解釋。
回覆:如何使用具有 1000 個 ID 的單獨資料集來篩選資料集(子查詢、腳本)親愛的Newbie2Jumpie,
這可以透過多種方式實現。 這取決於您是想建立新表還是只想過濾。 讓我們開始建立一個新表(檢查您是否有足夠的 RAM):
- 在 JMP 中開啟兩個表
- 在表格選單中,您可以選擇“加入”,您可以根據需要執行資料庫連接操作,如下所示

3. 按“確定”,您將獲得一個縮短的新表格,並且可以關閉其他兩個表格。
您可以使用選單“表格”->“JMP 查詢產生器”來實現類似的操作,但是,您還有更多選項,例如在資料庫查詢產生器中,除了來源腳本之外,您還可以獲得更新腳本和其他可用於變更查詢選項的選項。 (附上一個範例來說明這一點(Big Class.jmp、ID_Table.jmp、SQLQuery1.jmp)
另一個選項可讓您動態篩選:使用連結/引用表(又稱虛擬聯接)。 在引用的表中,您需要一個與大表中的 id 名稱相同的列,以及與小表的 ID 列內容相同的另一列(因此實際上是相同 ID 列的兩倍,只是名稱不同。 (請看第二個例子。 在小表中,指定與大表中同名的 ID 列作為連結 ID(右鍵單擊列和連結 ID)。 在大表中,右鍵單擊 ID 列並選擇連結引用,然後選擇小表作為引用。 現在您可以在大表中將小表的所有欄位視覺化為隱藏列。 現在,您可以篩選第二個 ID 列,該列僅包含小表中的項目。 這將排除所有其他行,因此僅考慮那些感興趣但在不同表中列出的行。