Come filtrare/ripulire i dati JMP utilizzando un elenco [tipp, JSL, scripting]Dopo aver ricevuto così tanto grande supporto, ho pensato che fosse giunto il momento di restituire questo favore. Di seguito troverai un piccolo programma che potrebbe semplificare il filtraggio delle tabelle di dati. La codifica rigida per "voce" è un modo per filtrare le voci; questo è noioso e soggetto a errori di battitura. Un'alternativa è filtrare le voci in base alla loro "posizione" in un elenco di filtri. Questo approccio presuppone semplicemente che la sequenza di campi nell'elenco dei filtri non cambi. Per essere sicuro, controlla il registro JMP. Come controllo di qualità, i Ti dirà quali voci sono state escluse.
Buona fortuna
Newbie2Jumpie
names default to here( 1 );
// Open a sample data table
dt = Open( "$SAMPLE_DATA/big class.jmp" );
/* Get entries/levels from Column NAME and store them in NAME_LIST */
NAME_LIST = dt:NAME << get values ;
NAME_LIST ;
/* Remove selected entries ("levels") on given position in list = JMP table */
remove from(NAME_LIST, {1,3,5} ); /* {removes: "KATIE", "JANE", "LILLIE" */
/* Cleans data by removing rows using level list */
dt << Select where(contains(NAME_LIST, :NAME)) ;
dt_2 = dt << subset(selected rows(1), all columns);
/* Results in a subset without the levels "KATIE", "JANE", "LILLIE" */
close (dt, nosave) ;
Ri: Come filtrare/ripulire i dati JMP usando un elenco [tipp, JSL, scripting] - Come farlo funzionare per i duplicati?Ecco un modo per farlo.L'unica complessità consiste nel convertire la matrice dei numeri di riga in un elenco
Names Default To Here( 1 );
// Open a sample data table
dt = Open( "$SAMPLE_DATA/big class.jmp" );
/* Get entries/levels from Column NAME and store them in NAME_LIST */
eval(parse("NAME_LIST =as list (" || char(index(1,n rows(dt))) || ")[1];"));
NAME_LIST ;
/* Remove selected entries ("levels") on given position in list = JMP table */
Remove From( NAME_LIST, {1, 3, 5} ); /* {removes: "KATIE", "JANE", "LILLIE" */
/* Cleans data by removing rows using level list */
dt << Select where( Contains( NAME_LIST, Row() ) );
dt_2 = dt << subset( selected rows( 1 ), all columns );
/* Results in a subset without the levels "KATIE", "JANE", "LILLIE" */
Close( dt, nosave );Ri: Come filtrare/ripulire i dati JMP usando un elenco [tipp, JSL, scripting] - Come farlo funzionare per i duplicati?
Ciao a tutti,
Venerdì scorso ho fornito un piccolo JMP che aiuta a filtrare i dati in base alla loro "posizione" in un elenco di filtri.
In un PM ho ricevuto un messaggio che funziona solo finché le voci scansionate per l'elenco dei filtri sono univoche. Ad esempio, se tutte le voci filtrate da NAME sono univoche, ad esempio se si desidera escludere "Katie"; "Jane" o "Lillie".Ora, "Robert" appare due volte in "BIG CLASS". Non appena vuoi escludere anche "Robert", questo approccio si blocca. Qualche idea su come risolverlo?
Newbie2Jumpie
names default to here( 1 );
// Open a sample data table
dt = Open( "$SAMPLE_DATA/big class.jmp" );
/* Get entries/levels from Column NAME and store them in NAME_LIST */
NAME_LIST = dt:NAME << get values ;
NAME_LIST ;
/* Remove selected entries ("levels") on given position in list = JMP table */
remove from(NAME_LIST, {1,3,5} ); /* {removes: "KATIE", "JANE", "LILLIE" */
/* Cleans data by removing rows using level list */
dt << Select where(contains(NAME_LIST, :NAME)) ;
dt_2 = dt << subset(selected rows(1), all columns);
/* Results in a subset without the levels "KATIE", "JANE", "LILLIE" */
close (dt, nosave) ;