Come posso eliminare le righe in cui mancano i dati in tutte le colonne del mio set di dati?Mi scuso per quanto sia semplice la mia domanda, sto appena iniziando a utilizzare JMP per la prima volta.
Ho un enorme set di dati (14 colonne x 20.000 righe) e sto cercando di scrivere uno script che identificherà ed eliminerà tutte le righe che non hanno né 0 né 1 per un intervallo specifico di colonne (colonne 4-14). Questo set di dati proviene da un set di dati ancora più grande, quindi ci sono alcune righe nel mio sottoinsieme che sono completamente vuote. Ecco un esempio di ciò che speravo di fare:
- - - - -
0 0 1 - 0
- - - - -
1 - - - -
diventa:
0 0 1 - 0
1 - - - -
Ho iniziato a scrivere il codice, ma sono bloccato: non sono sicuro di cosa fare dopo For Each Row. Speravo che questo script guardasse una riga alla volta, e se una particolare cella non avesse uno 0 o un 1, cercherebbe uno 0 o un 1 nella colonna successiva, e se arrivasse alla fine della riga senza 0 o 1, eliminerebbe l'intera riga. Ecco il mio codice finora:
dt=Open("File Name")
colnames = dt << get column names( numeric,string );
For( i = 4, i <= N Items( colnames ), i++,
For Each Row(If(:colnames != 0 | :colnames != 1), Continue()
)
);Stavo pensando di usare
<< Delete Rows
, che ho visto su alcune altre domande su questo forum. Se questo è troppo complicato con uno script, c'è un modo migliore per farlo?
Consumatori e ricerche di mercatoMiscelazione e pulizia dei datiQualità e ingegneria di processoRi: Come posso eliminare le righe che mancano di dati in tutte le colonne del mio set di dati?Come mostrato dalle risposte precedenti, esistono spesso molti modi per eseguire un'attività in JMP.
Se tutte le colonne 4-14 sono numeriche, questo script dovrebbe funzionare anche per eliminare solo le righe con valori mancanti.
dt = Current Data Table();
dt << Delete Rows(Loc(Is Missing(V Mean(dt[0, 4 :: 14]`))));
Ri: Come posso eliminare le righe che mancano di dati in tutte le colonne del mio set di dati?Questo script si prenderà cura della tua richiesta. Non è del tutto unico delle altre risposte.
Names Default to Here( 1 );
// get reference to target data table
dt = Current Data Table();
// get all the columns for missing value check
cols = dt << Get Column Names;
// obtain missing value patterns
missing = Current Data Table() << Missing Data Pattern(
Columns( Eval( cols ) ),
Output Table( "Missing Data Pattern" )
);
// make character string representing missing values in all columns
n missing = N Items( cols );
all missing = Repeat( "1", n missing );
// find the row of patterns where all columns are missing.
missing << Select Where( :Patterns == all missing );
// delete the linked rows in the original table
dt << Delete Rows;
// clean up
Close( missing, No Save );
Ri: Come posso eliminare le righe che mancano di dati in tutte le colonne del mio set di dati?o se vuoi scriverlo, questo è il mio suggerimento:
dt << New Column("Selected", Character, Nominal, Formula(
If(Is Missing(:Column4) | Is Missing(:Column5)|...until column14,
"Yes",
"No"
)
));
dt << Select Where(:Selected == "Yes");
dt << Delete Rows;Ri: Come posso eliminare le righe che mancano di dati in tutte le colonne del mio set di dati?Penso che tu debba guardare alla piattaforma Missing Data Pattern:
Tabelle=>Pattern di dati mancanti
Dalla tua descrizione, sembra che soddisferà le tue esigenze.Analizzerà le colonne specificate e quindi dalla tabella di dati che produce, puoi selezionare le colonne con tutti i valori mancanti e quindi eliminarle.
Ri: Come posso eliminare le righe che mancano di dati in tutte le colonne del mio set di dati?Questo deve essere uno script?
Se trovi solo una riga a cui mancano quelle celle specifiche, seleziona le celle mancanti.
Ora vai al menu Righe e seleziona Selezione riga > Seleziona celle corrispondenti.
Ora verrà selezionata ogni riga in cui mancano i dati in quelle colonne. Scegli Righe > Elimina righe.
Re: Come faccio a eliminare le righe in cui mancano dati in tutte le colonne del mio set di dati?Grazie mille, una raccolta di segreti meravigliosi!
- indicizzazione della tabella dati
- V Mean() - per aggregare le informazioni sulle voci "mancanti"
- Posto()
- Elimina righe (riga) **)
**) insieme a where(dt, manca ...)) , è ordini di grandezza più veloce di:
+ seleziona dove()