Come filtrare un set di dati utilizzando un set di dati separato con migliaia di ID (sottoquery, scripting)Ho un set di dati "GRANDE" contenente diversi milioni di righe. Ogni riga ha un campo IDENT specifico. IDENT può verificarsi più volte. Ho un altro set di dati più piccolo "SMALL", che contiene solo centinaia di migliaia di righe. Ogni riga ha anche un campo IDENT specifico.
Ora voglio solo mantenere tutte le righe da BIG, che hanno lo stesso IDENT in SMALL. In altre parole: come filtrare BIG usando il campo IDENT da SMALL. Utilizzando SAS SQL, sarebbe facile, ad es
proc sql ;
creare tabella FILTRATA
come selezionare * da GRANDE
dove IDENT in (seleziona IDENT da SMALL) ;
uscire ;
Posso fare qualcosa del genere in JMP?
Cordiali saluti
Novizio
Re: Come filtrare un set di dati utilizzando un set di dati separato con migliaia di ID (sottoquery, scripting)nello script JSL appare così:
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)) ;
Attenzione ai possibili piccoli errori di battitura...
Re: Come filtrare un set di dati utilizzando un set di dati separato con migliaia di ID (sottoquery, scripting)Se esegui il Join in modo interattivo, puoi quindi andare alla tabella di dati che è stata appena creata, fare clic con il tasto destro del mouse sulla voce "Sorgente", accanto al triangolo verde nel pannello della tabella sul bordo sinistro della tabella di dati, e selezionare " Modificare".Ti mostrerà il JSL che è stato utilizzato per creare la tabella di dati unita.
Re: Come filtrare un set di dati utilizzando un set di dati separato con migliaia di ID (sottoquery, scripting)Apprezzo i tuoi sforzi, ma ero interessato a una risposta di scripting, non a una spiegazione interattiva.
Re: Come filtrare un set di dati utilizzando un set di dati separato con migliaia di ID (sottoquery, scripting)Caro Newbie2Jumpie,
questo è possibile in diversi modi. Dipende se vuoi creare una nuova tabella o se vuoi solo filtrare. Iniziamo con la creazione di una nuova tabella (controlla se hai abbastanza RAM):
- Aprire entrambe le tabelle in JMP
- Nel menu della tabella hai "Unisciti" dove puoi fare un database come unisciti come desideri, come questo ad es.

3. Premi ok e otterrai un nuovo tavolo abbreviato e potrai chiudere gli altri due tavoli.
Una cosa simile che puoi ottenere con il menu Tabelle -> JMP Query Builder, tuttavia hai ancora più opzioni come in un database Query Builder e ottieni oltre allo script di origine uno script di aggiornamento e altre opzioni che puoi utilizzare per modificare le opzioni per la query. (In allegato un esempio per illustrarlo (Big Class.jmp, ID_Table.jmp, SQLQuery1.jmp)
L'altra opzione ti consente di filtrare al volo: utilizzando tabelle collegate/riferite alias virtual join. Lì hai bisogno nella tabella di riferimento di una colonna con lo stesso nome della tabella Big per l'id e un'altra colonna con lo stesso contenuto della colonna ID della tabella piccola (quindi in realtà due volte la stessa colonna ID, solo con nomi diversi . (Dai un'occhiata al secondo esempio. Nella piccola tabella si specifica la Colonna ID con lo stesso nome della tabella grande come Link ID (fare clic con il tasto destro sulla colonna e Link ID). Nella tabella grande fai clic con il pulsante destro del mouse sulla colonna ID e seleziona Riferimento collegamento e come riferimento scegli la tabella piccola. Ottieni tutte le colonne della tabella piccola ora visualizzate anche nella tabella grande come colonne nascoste. Ora puoi filtrare attraverso questa seconda colonna ID che ha solo voci come nella piccola tabella. Ciò escluderà tutte le altre e quindi prenderà in considerazione solo quelle righe che sono di interesse, ma elencate in una tabella diversa.